import React, { useEffect, useState } from 'react'; import { themedColor } from '../../theme'; import { KeyboardAvoidingView, Modal, Platform, Pressable, Text, TextInput, View, } from 'react-native'; import { renameAgentModalStyles as styles } from './renameAgentModalStyles'; export function RenameAgentModal({ error, initialName, isSaving, isVisible, onClose, onSave, }: { error?: string | null; initialName: string; isSaving: boolean; isVisible: boolean; onClose: () => void; onSave: (name: string) => void; }) { const [name, setName] = useState(initialName); const [localError, setLocalError] = useState(null); useEffect(() => { if (isVisible) { setName(initialName); setLocalError(null); } }, [initialName, isVisible]); const save = () => { const trimmed = name.trim(); if (!trimmed) { setLocalError('Name is required.'); return; } onSave(trimmed); }; return ( Rename Superagent { setName(value); setLocalError(null); }} onSubmitEditing={save} placeholder="Superagent name" placeholderTextColor={themedColor('#8E8E93')} returnKeyType="done" selectTextOnFocus style={styles.input} value={name} /> {localError || error ? ( {localError || error} ) : null} [ styles.button, styles.secondaryButton, pressed && styles.pressed, ]} > Cancel [ styles.button, styles.primaryButton, (pressed || isSaving) && styles.primaryPressed, ]} > {isSaving ? 'Saving...' : 'Save'} ); }