2022-03-04 21:14:52 +00:00
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import React from 'react' ;
import { storiesOf } from '@storybook/react' ;
import { action } from '@storybook/addon-actions' ;
import type { PropsType } from './StoryViewer' ;
import { StoryViewer } from './StoryViewer' ;
import enMessages from '../../_locales/en/messages.json' ;
import { setupI18n } from '../util/setupI18n' ;
import { getDefaultConversation } from '../test-both/helpers/getDefaultConversation' ;
import { fakeAttachment } from '../test-both/helpers/fakeAttachment' ;
const i18n = setupI18n ( 'en' , enMessages ) ;
const story = storiesOf ( 'Components/StoryViewer' , module ) ;
function getDefaultProps ( ) : PropsType {
2022-04-15 00:08:46 +00:00
const sender = getDefaultConversation ( ) ;
2022-03-04 21:14:52 +00:00
return {
2022-04-15 00:08:46 +00:00
conversationId : sender.id ,
2022-03-04 21:14:52 +00:00
getPreferredBadge : ( ) = > undefined ,
group : undefined ,
i18n ,
2022-04-15 00:08:46 +00:00
loadStoryReplies : action ( 'loadStoryReplies' ) ,
2022-03-04 21:14:52 +00:00
markStoryRead : action ( 'markStoryRead' ) ,
onClose : action ( 'onClose' ) ,
onNextUserStories : action ( 'onNextUserStories' ) ,
onPrevUserStories : action ( 'onPrevUserStories' ) ,
onReactToStory : action ( 'onReactToStory' ) ,
onReplyToStory : action ( 'onReplyToStory' ) ,
onSetSkinTone : action ( 'onSetSkinTone' ) ,
onTextTooLong : action ( 'onTextTooLong' ) ,
onUseEmoji : action ( 'onUseEmoji' ) ,
preferredReactionEmoji : [ '❤️' , '👍' , '👎' , '😂' , '😮' , '😢' ] ,
2022-03-29 01:10:08 +00:00
queueStoryDownload : action ( 'queueStoryDownload' ) ,
2022-03-04 21:14:52 +00:00
renderEmojiPicker : ( ) = > < div / > ,
stories : [
{
attachment : fakeAttachment ( {
url : '/fixtures/snow.jpg' ,
} ) ,
messageId : '123' ,
2022-04-15 00:08:46 +00:00
sender ,
2022-03-04 21:14:52 +00:00
timestamp : Date.now ( ) ,
} ,
] ,
} ;
}
story . add ( "Someone's story" , ( ) = > < StoryViewer { ...getDefaultProps ( ) } / > ) ;
story . add ( 'Wide story' , ( ) = > (
< StoryViewer
{ . . . getDefaultProps ( ) }
stories = { [
{
attachment : fakeAttachment ( {
url : '/fixtures/nathan-anderson-316188-unsplash.jpg' ,
} ) ,
messageId : '123' ,
sender : getDefaultConversation ( ) ,
timestamp : Date.now ( ) ,
} ,
] }
/ >
) ) ;
story . add ( 'In a group' , ( ) = > (
< StoryViewer
{ . . . getDefaultProps ( ) }
group = { getDefaultConversation ( {
avatarPath : '/fixtures/kitten-4-112-112.jpg' ,
title : 'Family Group' ,
type : 'group' ,
} ) }
/ >
) ) ;
story . add ( 'Multi story' , ( ) = > {
const sender = getDefaultConversation ( ) ;
return (
< StoryViewer
{ . . . getDefaultProps ( ) }
stories = { [
{
attachment : fakeAttachment ( {
url : '/fixtures/snow.jpg' ,
} ) ,
messageId : '123' ,
sender ,
timestamp : Date.now ( ) ,
} ,
{
attachment : fakeAttachment ( {
url : '/fixtures/nathan-anderson-316188-unsplash.jpg' ,
} ) ,
messageId : '456' ,
sender ,
timestamp : Date.now ( ) - 3600 ,
} ,
] }
/ >
) ;
} ) ;
story . add ( 'So many stories' , ( ) = > {
const sender = getDefaultConversation ( ) ;
return (
< StoryViewer
{ . . . getDefaultProps ( ) }
stories = { Array ( 20 ) . fill ( {
attachment : fakeAttachment ( {
url : '/fixtures/snow.jpg' ,
} ) ,
messageId : '123' ,
sender ,
timestamp : Date.now ( ) ,
} ) }
/ >
) ;
} ) ;
2022-04-22 18:36:34 +00:00
story . add ( 'Caption' , ( ) = > (
< StoryViewer
{ . . . getDefaultProps ( ) }
stories = { [
{
attachment : fakeAttachment ( {
caption : 'This place looks lovely' ,
url : '/fixtures/nathan-anderson-316188-unsplash.jpg' ,
} ) ,
messageId : '123' ,
sender : getDefaultConversation ( ) ,
timestamp : Date.now ( ) ,
} ,
] }
/ >
) ) ;
story . add ( 'Long Caption' , ( ) = > (
< StoryViewer
{ . . . getDefaultProps ( ) }
stories = { [
{
attachment : fakeAttachment ( {
caption :
'Snowycle, snowycle, snowycle\nI want to ride my snowycle, snowycle, snowycle\nI want to ride my snowycle\nI want to ride my snow\nI want to ride my snowycle\nI want to ride it where I like\nSnowycle, snowycle, snowycle\nI want to ride my snowycle, snowycle, snowycle\nI want to ride my snowycle\nI want to ride my snow\nI want to ride my snowycle\nI want to ride it where I like\nSnowycle, snowycle, snowycle\nI want to ride my snowycle, snowycle, snowycle\nI want to ride my snowycle\nI want to ride my snow\nI want to ride my snowycle\nI want to ride it where I like' ,
url : '/fixtures/snow.jpg' ,
} ) ,
messageId : '123' ,
sender : getDefaultConversation ( ) ,
timestamp : Date.now ( ) ,
} ,
] }
/ >
) ) ;