import * as React from 'react'; import { KeyboardAvoidingView, Platform, Pressable, TextInput as RNTextInput, View, } from 'react-native'; import { useColors, useGetStyleProps } from '../../hook'; import { useI18nContext } from '../../i18n'; import { usePaletteContext, useThemeContext } from '../../theme'; import { Text } from '../../ui/Text'; import { TextInput } from '../../ui/TextInput'; import { TopNavigationBar, TopNavigationBarLeft } from '../TopNavigationBar'; import type { EditInfoProps } from './types'; /** * Edit Info Component. */ export function EditInfo(props: EditInfoProps) { const { containerStyle, onBack, backName, saveName, maxLength = 128, initialData, onSave, navigationBarVisible, customNavigationBar, } = props; const {} = useI18nContext(); const inputRef = React.useRef>( {} as any ); const [value, setValue] = React.useState(initialData); const [count, setCount] = React.useState(initialData?.length ?? 0); const [disable, setDisable] = React.useState(false); const { style, cornerRadius: corner } = useThemeContext(); const { cornerRadius, colors } = usePaletteContext(); const { getBorderRadius } = useGetStyleProps(); const { getColor } = useColors({ t1: { light: colors.primary[1], dark: colors.neutral[98], }, t2: { light: colors.neutral[7], dark: colors.neutral[6], }, }); const onValue = React.useCallback( (t: string) => { // if (t.length > maxLength) { // return; // } if (initialData === t) { setDisable(true); } else { setDisable(false); } setCount(t.length); setValue(t); }, [initialData] ); React.useEffect(() => { setValue(initialData); setDisable(true); setCount(initialData?.length ?? 0); }, [initialData]); return ( {navigationBarVisible !== false ? ( customNavigationBar ? ( <>{customNavigationBar} ) : ( } Right={ { onSave?.(value); }} > {saveName} } /> ) ) : null} {/* {`${count}/${maxLength}`} */} { inputRef.current?.blur(); }} /> ); }