import CustomText from '@components/Text' import AttachmentVideo from '@components/Timeline/Shared/Attachment/Video' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { useContext, useMemo, useRef } from 'react' import { useTranslation } from 'react-i18next' import { ScrollView, StyleSheet, TextInput, View } from 'react-native' import ComposeContext from '../utils/createContext' import ComposeEditAttachmentImage from './Image' export interface Props { index: number } const ComposeEditAttachmentRoot: React.FC = ({ index }) => { const { t } = useTranslation('screenCompose') const { colors, mode } = useTheme() const { composeState, composeDispatch } = useContext(ComposeContext) const theAttachment = composeState.attachments.uploads[index].remote! const mediaDisplay = useMemo(() => { if (theAttachment) { switch (theAttachment.type) { case 'image': return case 'video': case 'gifv': const video = composeState.attachments.uploads[index] return ( ) } } return null }, []) const onChangeText = (e: any) => composeDispatch({ type: 'attachment/edit', payload: { ...theAttachment, description: e } }) const scrollViewRef = useRef(null) return ( {mediaDisplay} {t('content.editAttachment.content.altText.heading')} scrollViewRef.current?.scrollToEnd()} autoCapitalize='none' autoCorrect={false} maxLength={1500} multiline onChangeText={onChangeText} placeholder={t('content.editAttachment.content.altText.placeholder')} placeholderTextColor={colors.secondary} scrollEnabled value={theAttachment.description} keyboardAppearance={mode} /> {theAttachment.description?.length || 0} / 1500 ) } export default ComposeEditAttachmentRoot