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, 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 = () => { if (theAttachment) { switch (theAttachment.type) { case 'image': return case 'video': case 'gifv': const video = composeState.attachments.uploads[index] return ( ) } } return null } const scrollViewRef = useRef(null) return ( {mediaDisplay()} {t('content.editAttachment.content.altText.heading')} scrollViewRef.current?.scrollToEnd()} autoCapitalize='none' autoCorrect={false} maxLength={1500} multiline onChangeText={(e) => composeDispatch({ type: 'attachment/edit', payload: { ...theAttachment, description: e } })} placeholder={t('content.editAttachment.content.altText.placeholder')} placeholderTextColor={colors.secondary} scrollEnabled value={theAttachment.description} keyboardAppearance={mode} /> {theAttachment.description?.length || 0} / 1500 ) } export default ComposeEditAttachmentRoot