import { Trans, useLingui } from '@lingui/react/macro'; import i18nDuration from '../utils/i18n-duration'; import TextExpander from './text-expander'; export interface PollState { options: string[]; expiresIn: number | string; multiple: boolean; } export const expiryOptions: Record string> = { 300: i18nDuration(5, 'minute'), 1_800: i18nDuration(30, 'minute'), 3_600: i18nDuration(1, 'hour'), 21_600: i18nDuration(6, 'hour'), 86_400: i18nDuration(1, 'day'), 259_200: i18nDuration(3, 'day'), 604_800: i18nDuration(1, 'week'), }; interface ComposePollProps { lang?: string; poll: PollState; disabled?: boolean; onInput?: (poll: PollState | null) => void; maxOptions: number; maxExpiration: number; minExpiration: number; maxCharactersPerOption?: number; } function ComposePoll({ lang, poll, disabled, onInput = () => {}, maxOptions, maxExpiration, minExpiration, maxCharactersPerOption, }: ComposePollProps) { const { t } = useLingui(); const { options, expiresIn, multiple } = poll; return (
{options.map((option, i) => (
{ const { value } = e.target as HTMLInputElement; options[i] = value; onInput(poll); }} />
))}
{' '}
); } export default ComposePoll;