import AttachmentVideo from '@components/Timeline/Shared/Attachment/Video' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' import React, { Dispatch, SetStateAction, useContext, useMemo } from 'react' import { useTranslation } from 'react-i18next' import { ScrollView, StyleSheet, Text, TextInput, View } from 'react-native' import Animated from 'react-native-reanimated' import ComposeContext from '../utils/createContext' import ComposeEditAttachmentImage from './Image' export interface Props { index: number focus: Animated.SharedValue<{ x: number y: number }> altText: string | undefined setAltText: Dispatch> } const ComposeEditAttachmentRoot: React.FC = ({ index, focus, altText, setAltText }) => { const { t } = useTranslation('sharedCompose') const { theme } = useTheme() const { composeState } = 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 }, []) return ( {mediaDisplay} {t('content.editAttachment.content.altText.heading')} setAltText(e)} placeholder={t('content.editAttachment.content.altText.placeholder')} placeholderTextColor={theme.secondary} scrollEnabled value={altText} /> {altText?.length || 0} / 1500 ) } const styles = StyleSheet.create({ altTextContainer: { padding: StyleConstants.Spacing.Global.PagePadding }, altTextInputHeading: { ...StyleConstants.FontStyle.M, fontWeight: StyleConstants.Font.Weight.Bold }, altTextInput: { height: 200, ...StyleConstants.FontStyle.M, marginTop: StyleConstants.Spacing.M, marginBottom: StyleConstants.Spacing.S, padding: StyleConstants.Spacing.Global.PagePadding, paddingTop: StyleConstants.Spacing.S * 1.5, borderWidth: StyleSheet.hairlineWidth }, altTextLength: { textAlign: 'right', marginRight: StyleConstants.Spacing.S, ...StyleConstants.FontStyle.S, marginBottom: StyleConstants.Spacing.M } }) export default ComposeEditAttachmentRoot