diff --git a/src/app/(protected)/workorders/_components/list/table/cells/use-site-dialog-state.ts b/src/app/(protected)/workorders/_components/list/table/cells/use-site-dialog-state.ts index 7b943aad..17d44464 100644 --- a/src/app/(protected)/workorders/_components/list/table/cells/use-site-dialog-state.ts +++ b/src/app/(protected)/workorders/_components/list/table/cells/use-site-dialog-state.ts @@ -80,18 +80,24 @@ export function useSiteDialogState({ if (!open || !locId || !locationDetail || pocFilledFor === locId) { return; } - setPn(locationDetail.contact ?? ""); - setPp(locationDetail.phone ?? ""); + // Only autofill empty fields so typed createMode POC edits are not overwritten. + setPn((prev) => (prev.trim() ? prev : (locationDetail.contact ?? ""))); + setPp((prev) => (prev.trim() ? prev : (locationDetail.phone ?? ""))); setPocFilledFor(locId); }, [open, locId, locationDetail, pocFilledFor]); const handlePick = (id: string) => { const next = sites.find((s) => String(s.id) === id); + const siteChanged = id !== locId; setLocId(id); if (next) { setCode(resolveSiteCode(next)); } - if (id !== pocFilledFor) { + if (siteChanged) { + setPn(""); + setPp(""); + setPocFilledFor(""); + } else if (id !== pocFilledFor) { setPocFilledFor(""); } };