diff --git a/ts/components/CompositionArea.md b/ts/components/CompositionArea.md deleted file mode 100644 index fdd59ea57c..0000000000 --- a/ts/components/CompositionArea.md +++ /dev/null @@ -1,29 +0,0 @@ -#### Default - -```jsx - -
- console.log('onSubmit', s)} - onDirtyChange={dirty => - console.log(`Dirty Change: ${dirty ? 'dirty' : 'not dirty'}`) - } - // EmojiButton - onSetSkinTone={s => console.log('onSetSkinTone', s)} - // StickerButton - knownPacks={[]} - receivedPacks={[]} - installedPacks={[]} - blessedPacks={[]} - recentStickers={[]} - clearInstalledStickerPack={() => console.log('clearInstalledStickerPack')} - onClickAddPack={(...args) => console.log('onClickAddPack', ...args)} - onPickSticker={(...args) => console.log('onPickSticker', ...args)} - clearShowIntroduction={() => console.log('clearShowIntroduction')} - showPickerHint={false} - clearShowPickerHint={() => console.log('clearShowIntroduction')} - /> -
-
-``` diff --git a/ts/components/CompositionArea.stories.tsx b/ts/components/CompositionArea.stories.tsx new file mode 100644 index 0000000000..634b2bcdac --- /dev/null +++ b/ts/components/CompositionArea.stories.tsx @@ -0,0 +1,106 @@ +import * as React from 'react'; + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; + +import { CompositionArea, Props } from './CompositionArea'; + +// tslint:disable-next-line +import 'draft-js/dist/Draft.css'; + +// @ts-ignore +import { setup as setupI18n } from '../../js/modules/i18n'; + +// @ts-ignore +import enMessages from '../../_locales/en/messages.json'; +import { boolean } from '@storybook/addon-knobs'; + +const i18n = setupI18n('en', enMessages); + +const story = storiesOf('Components/CompositionArea', module); + +// necessary for the add attachment button to render properly +story.addDecorator(storyFn =>
{storyFn()}
); + +// necessary for the mic button to render properly +const micCellEl = new DOMParser().parseFromString( + ` +
+ +
+ `, + 'text/html' +).body.firstElementChild as HTMLElement; + +const createProps = (overrideProps: Partial = {}): Props => ({ + i18n, + micCellEl, + onChooseAttachment: action('onChooseAttachment'), + // CompositionInput + onSubmit: action('onSubmit'), + onEditorSizeChange: action('onEditorSizeChange'), + onEditorStateChange: action('onEditorStateChange'), + onTextTooLong: action('onTextTooLong'), + startingText: overrideProps.startingText || undefined, + clearQuotedMessage: action('clearQuotedMessage'), + getQuotedMessage: action('getQuotedMessage'), + // EmojiButton + onPickEmoji: action('onPickEmoji'), + onSetSkinTone: action('onSetSkinTone'), + recentEmojis: [], + skinTone: 1, + // StickerButton + knownPacks: overrideProps.knownPacks || [], + receivedPacks: [], + installedPacks: [], + blessedPacks: [], + recentStickers: [], + clearInstalledStickerPack: action('clearInstalledStickerPack'), + onClickAddPack: action('onClickAddPack'), + onPickSticker: action('onPickSticker'), + clearShowIntroduction: action('clearShowIntroduction'), + showPickerHint: false, + clearShowPickerHint: action('clearShowPickerHint'), + // Message Requests + conversationType: 'direct', + onAccept: action('onAccept'), + onBlock: action('onBlock'), + onBlockAndDelete: action('onBlockAndDelete'), + onDelete: action('onDelete'), + onUnblock: action('onUnblock'), + messageRequestsEnabled: boolean( + 'messageRequestsEnabled', + overrideProps.messageRequestsEnabled || false + ), + title: '', +}); + +story.add('Default', () => { + const props = createProps(); + + return ; +}); + +story.add('Starting Text', () => { + const props = createProps({ + startingText: "here's some starting text", + }); + + return ; +}); + +story.add('Sticker Button', () => { + const props = createProps({ + knownPacks: [{} as any], + }); + + return ; +}); + +story.add('Message Request', () => { + const props = createProps({ + messageRequestsEnabled: true, + }); + + return ; +});