/** * Register Form Fields * Individual form field components for registration */ import React, { useRef } from 'react'; import { TextInput } from 'react-native'; import { FormTextInput } from '../form/FormTextInput'; import { FormEmailInput } from '../form/FormEmailInput'; import { FormPasswordInput } from '../form/FormPasswordInput'; import { PasswordStrengthIndicator } from '../PasswordStrengthIndicator'; import { PasswordMatchIndicator } from '../PasswordMatchIndicator'; import type { RegisterFormTranslations } from './types'; import type { PasswordRequirements } from '../../../infrastructure/utils/AuthValidation'; export interface RegisterFormFieldsProps { displayName: string; email: string; password: string; confirmPassword: string; fieldErrors: Record; loading: boolean; passwordRequirements: PasswordRequirements; passwordsMatch: boolean; translations: RegisterFormTranslations; onDisplayNameChange: (value: string) => void; onEmailChange: (value: string) => void; onPasswordChange: (value: string) => void; onConfirmPasswordChange: (value: string) => void; onSubmit: () => Promise; } export const RegisterFormFields: React.FC = ({ displayName, email, password, confirmPassword, fieldErrors, loading, passwordRequirements, passwordsMatch, translations, onDisplayNameChange, onEmailChange, onPasswordChange, onConfirmPasswordChange, onSubmit, }) => { const emailRef = useRef>(null); const passwordRef = useRef>(null); const confirmPasswordRef = useRef>(null); return ( <> emailRef.current?.focus()} returnKeyType="next" /> passwordRef.current?.focus()} returnKeyType="next" /> confirmPasswordRef.current?.focus()} returnKeyType="next" style={{ marginBottom: 4 }} /> {password.length > 0 && ( )} void onSubmit()} returnKeyType="done" style={{ marginBottom: 4 }} /> {confirmPassword.length > 0 && ( )} ); };