import analytics from '@components/analytics' import Button from '@components/Button' import Icon from '@components/Icon' import { MenuRow } from '@components/Menu' import { useActionSheet } from '@expo/react-native-action-sheet' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useContext, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { StyleSheet, TextInput, View } from 'react-native' import ComposeContext from '../../utils/createContext' const ComposePoll: React.FC = () => { const { showActionSheetWithOptions } = useActionSheet() const { composeState: { poll: { total, options, multiple, expire } }, composeDispatch } = useContext(ComposeContext) const { t } = useTranslation('sharedCompose') const { theme } = useTheme() const [firstRender, setFirstRender] = useState(true) useEffect(() => { setFirstRender(false) }, []) return ( {[...Array(total)].map((e, i) => { const restOptions = Object.keys(options).filter( o => parseInt(o) !== i && parseInt(o) < total ) let hasConflict = false restOptions.forEach(o => { // @ts-ignore if (options[o] === options[i]) { hasConflict = true } }) return ( composeDispatch({ type: 'poll', payload: { options: { ...options, [i]: e } } }) } /> ) })}