signal-desktop/ts/components/conversation/ReactionPicker.stories.tsx

74 lines
2.2 KiB
TypeScript
Raw Normal View History

2023-01-03 11:55:46 -08:00
// Copyright 2020 Signal Messenger, LLC
2020-10-30 15:34:04 -05:00
// SPDX-License-Identifier: AGPL-3.0-only
import * as React from 'react';
import { action } from '@storybook/addon-actions';
import type { Meta } from '@storybook/react';
import type { Props as ReactionPickerProps } from './ReactionPicker';
import { ReactionPicker } from './ReactionPicker';
import { EmojiPicker } from '../emoji/EmojiPicker';
import { DEFAULT_PREFERRED_REACTION_EMOJI } from '../../reactions/constants';
2025-03-26 12:35:32 -07:00
import { EmojiSkinTone } from '../fun/data/emojis';
2025-03-13 12:52:08 -07:00
const { i18n } = window.SignalContext;
const renderEmojiPicker: ReactionPickerProps['renderEmojiPicker'] = ({
onClose,
onPickEmoji,
2025-03-26 12:35:32 -07:00
onEmojiSkinToneDefaultChange,
ref,
}) => (
<EmojiPicker
i18n={i18n}
2025-03-26 12:35:32 -07:00
emojiSkinToneDefault={EmojiSkinTone.None}
ref={ref}
onClose={onClose}
onPickEmoji={onPickEmoji}
2025-03-26 12:35:32 -07:00
onEmojiSkinToneDefaultChange={onEmojiSkinToneDefaultChange}
wasInvokedFromKeyboard={false}
/>
);
2022-06-06 20:48:02 -04:00
export default {
title: 'Components/Conversation/ReactionPicker',
} satisfies Meta<ReactionPickerProps>;
2022-06-06 20:48:02 -04:00
2022-11-17 16:45:19 -08:00
export function Base(): JSX.Element {
2022-06-06 20:48:02 -04:00
return (
<ReactionPicker
i18n={i18n}
onPick={action('onPick')}
2025-03-26 12:35:32 -07:00
onEmojiSkinToneDefaultChange={action('onEmojiSkinToneDefaultChange')}
2022-06-06 20:48:02 -04:00
openCustomizePreferredReactionsModal={action(
'openCustomizePreferredReactionsModal'
)}
preferredReactionEmoji={DEFAULT_PREFERRED_REACTION_EMOJI}
2022-06-06 20:48:02 -04:00
renderEmojiPicker={renderEmojiPicker}
/>
);
2022-11-17 16:45:19 -08:00
}
2022-06-06 20:48:02 -04:00
2022-11-17 16:45:19 -08:00
export function SelectedReaction(): JSX.Element {
2022-06-06 20:48:02 -04:00
return (
<>
{['❤️', '👍', '👎', '😂', '😮', '😢', '😡'].map(e => (
<div key={e} style={{ height: '100px' }}>
<ReactionPicker
i18n={i18n}
selected={e}
onPick={action('onPick')}
2025-03-26 12:35:32 -07:00
onEmojiSkinToneDefaultChange={action(
'onEmojiSkinToneDefaultChange'
)}
2022-06-06 20:48:02 -04:00
openCustomizePreferredReactionsModal={action(
'openCustomizePreferredReactionsModal'
)}
preferredReactionEmoji={DEFAULT_PREFERRED_REACTION_EMOJI}
2022-06-06 20:48:02 -04:00
renderEmojiPicker={renderEmojiPicker}
/>
</div>
))}
</>
);
2022-11-17 16:45:19 -08:00
}