From 3bb7acde2d04523be33c15c87f69db12f648eb18 Mon Sep 17 00:00:00 2001 From: Arthur Bassi Date: Wed, 9 Sep 2026 17:09:26 -0300 Subject: [PATCH] fix(work-orders): preserve staged vendor selection --- .../table/cells/use-vendor-dialog-form.ts | 4 +- .../table/cells/vendor-dialog-can-submit.ts | 1 - .../list/table/cells/vendor-dialog-footer.tsx | 1 + .../vendor-dialog-can-submit.test.ts | 4 +- .../vendor-dialog-save-gate.test.tsx | 5 +- .../vendor-dialog-stable-identity.test.tsx | 52 +++++++++++++++++++ 6 files changed, 60 insertions(+), 7 deletions(-) diff --git a/src/app/(protected)/workorders/_components/list/table/cells/use-vendor-dialog-form.ts b/src/app/(protected)/workorders/_components/list/table/cells/use-vendor-dialog-form.ts index 3bd9104b..cf3624c9 100644 --- a/src/app/(protected)/workorders/_components/list/table/cells/use-vendor-dialog-form.ts +++ b/src/app/(protected)/workorders/_components/list/table/cells/use-vendor-dialog-form.ts @@ -146,9 +146,9 @@ export function useVendorDialogForm({ handleCompanyPick: (nextCompany: string) => { const selectedOption = technicianOptions.find((option) => option.key === selectedKey); setSelectedCompany(nextCompany); - setAddedVendors([]); - setPendingCreates({}); if (selectedOption?.company !== nextCompany) { + setAddedVendors([]); + setPendingCreates({}); setSelectedKey(""); setT(""); setPhone(""); diff --git a/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-can-submit.ts b/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-can-submit.ts index 649a7ad7..3a0ddc19 100644 --- a/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-can-submit.ts +++ b/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-can-submit.ts @@ -21,7 +21,6 @@ export function computeVendorDialogCanSubmit({ current.company !== baseline.company || current.selectedKey !== baseline.selectedKey || current.phone !== baseline.phone || - current.notes !== baseline.notes || current.pendingCreateCount !== baseline.pendingCreateCount; return valid && (dirty || hasNewTechs); } diff --git a/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-footer.tsx b/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-footer.tsx index 4c4afffc..954382ad 100644 --- a/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-footer.tsx +++ b/src/app/(protected)/workorders/_components/list/table/cells/vendor-dialog-footer.tsx @@ -44,6 +44,7 @@ export function VendorDialogFooter({