fix: server edit dialog submit button unresponsive after first save (#1132)

Upgrade react-hook-form 7.63→7.71 to fix form.reset() race condition
that silently broke zod validation on subsequent submissions.

Reset form and public-note state (publicNoteObj/Raw/Mode/Errors)
from latest data when the edit dialog opens, preventing stale state
from a previous edit session.
This commit is contained in:
naiba
2026-02-14 12:11:47 +08:00
parent ff231da753
commit 84ba33dac3
3 changed files with 6076 additions and 2 deletions
+6055
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -51,7 +51,7 @@
"react": "^19.2.0",
"react-day-picker": "^9.11.1",
"react-dom": "^19.2.0",
"react-hook-form": "^7.64.0",
"react-hook-form": "^7.71.1",
"react-i18next": "^16.0.0",
"react-router-dom": "^7.9.4",
"react-virtuoso": "^4.14.1",
+20 -1
View File
@@ -214,8 +214,27 @@ export const ServerCard: React.FC<ServerCardProps> = ({ data, mutate }) => {
form.reset()
}
const handleOpenChange = (v: boolean) => {
if (v) {
form.reset({
...data,
ddns_profiles_raw: data.ddns_profiles
? conv.arrToStr(data.ddns_profiles)
: undefined,
override_ddns_domains_raw: data.override_ddns_domains
? JSON.stringify(data.override_ddns_domains)
: undefined,
})
setPublicNoteObj(parsePublicNote(data?.public_note))
setPublicNoteRaw(data?.public_note ?? "")
setPublicNoteMode(detectPublicNoteMode(data?.public_note))
setPublicNoteErrors({})
}
setOpen(v)
}
return (
<Dialog open={open} onOpenChange={setOpen}>
<Dialog open={open} onOpenChange={handleOpenChange}>
<DialogTrigger asChild>
<IconButton variant="outline" icon="edit" />
</DialogTrigger>