mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-15 20:15:48 +00:00
fix(desktop): add defaultValues to form dialogs to prevent crash (#737)
useForm() without defaultValues causes watch() to return undefined on first render, crashing with undefined.trim(). Adds defaultValues to all 5 affected dialogs: Agent, Channel, MCP, Provider, TeamSettings. Closes #732, closes #735
This commit is contained in:
1 parent
0e2282be8f
commit
329b150902
5 files changed
+5
No files matched your search
@@ -25,6 +25,7 @@ export function AgentFormDialog({ open, onOpenChange, agent, onSubmit }: AgentFo
|
||||
const { register, handleSubmit, watch, setValue, reset, formState: { errors, isSubmitting } } = useForm<AgentFormData>({
|
||||
resolver: zodResolver(agentFormSchema),
|
||||
mode: 'onChange',
|
||||
defaultValues: { displayName: '', emoji: '🦊', agentKey: '', providerName: '', model: '', description: '', isDefault: false },
|
||||
})
|
||||
|
||||
// UI-only state (not form data)
|
||||
|
||||
@@ -25,6 +25,7 @@ export function ChannelFormDialog({ open, onOpenChange, agents, telegramExists,
|
||||
const { handleSubmit, watch, setValue, reset, formState: { errors, isSubmitting } } = useForm<ChannelFormData>({
|
||||
resolver: zodResolver(channelFormSchema),
|
||||
mode: 'onChange',
|
||||
defaultValues: { displayName: '', channelType: '', agentId: '', enabled: true, credentials: {} },
|
||||
})
|
||||
|
||||
const channelType = watch('channelType')
|
||||
|
||||
@@ -26,6 +26,7 @@ export function McpFormDialog({ open, onOpenChange, server, onSubmit, onTest }:
|
||||
const { register, handleSubmit, watch, setValue, reset, formState: { errors, isSubmitting } } = useForm<MCPFormData>({
|
||||
resolver: zodResolver(mcpFormSchema),
|
||||
mode: 'onChange',
|
||||
defaultValues: { name: '', displayName: '', transport: 'stdio', command: '', args: '', url: '', headers: {}, env: {}, toolPrefix: '', timeoutSec: 30, enabled: true },
|
||||
})
|
||||
|
||||
// Test connection state (UI-only, not form data)
|
||||
|
||||
@@ -23,6 +23,7 @@ export function ProviderFormDialog({ open, onOpenChange, provider, onSubmit }: P
|
||||
const { register, handleSubmit, watch, setValue, reset, formState: { errors, isSubmitting } } = useForm<ProviderFormData>({
|
||||
resolver: zodResolver(providerFormSchema),
|
||||
mode: 'onChange',
|
||||
defaultValues: { providerType: '', displayName: '', apiBase: '', apiKey: '', enabled: true },
|
||||
})
|
||||
|
||||
// Reset form when dialog opens
|
||||
|
||||
@@ -35,6 +35,7 @@ export function TeamSettingsModal({ teamId, onClose, onSaved }: TeamSettingsModa
|
||||
const { watch, setValue, reset, handleSubmit, formState: { isSubmitting } } = useForm<TeamSettingsFormData>({
|
||||
resolver: zodResolver(teamSettingsSchema),
|
||||
mode: 'onChange',
|
||||
defaultValues: { name: '', description: '', notify: { dispatched: true, progress: true, failed: true, completed: true, new_task: true }, notifyMode: 'direct' },
|
||||
})
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Reference in new issue
Block a user