Compare commits

..

3 Commits

Author SHA1 Message Date
Ahmed Bouhuolia
a383c71424 Merge pull request #1000 from bigcapitalhq/fix/branch-warehouse-select-edit-form
fix(webapp): branch and warehouse select not showing saved values in edit mode
2026-02-27 04:49:54 +02:00
Ahmed Bouhuolia
2065afe108 fix(webapp): remove duplicated isNewMode from context 2026-02-27 04:46:59 +02:00
Ahmed Bouhuolia
7051256e60 fix(webapp): branch and warehouse select not showing saved values in edit mode
Fixed an issue where branch and warehouse select fields were not displaying
saved values when editing existing transactions. The useSetPrimaryBranchToForm
and useSetPrimaryWarehouseToForm hooks were overwriting saved values with
primary defaults on every form load.

Changes:
- Added isNewMode check to useSetPrimaryBranchToForm hook
- Added isNewMode check to useSetPrimaryWarehouseToForm hook
- Updated InvoiceFormProvider to expose isNewMode in context

Affected forms:
- Sales: Invoice, Estimate, Receipt, CreditNote, PaymentReceived
- Purchases: Bill, VendorCredit, PaymentMade
- Expense
- MakeJournal (Manual Journal)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 04:39:24 +02:00
10 changed files with 48 additions and 48 deletions

View File

@@ -213,17 +213,17 @@ export const currenciesFieldShouldUpdate = (newProps, oldProps) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useMakeJournalFormContext(); const { branches, isBranchesSuccess, isNewMode } = useMakeJournalFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
export const useManualJournalCreditTotal = () => { export const useManualJournalCreditTotal = () => {

View File

@@ -152,17 +152,17 @@ export const transformFormValuesToRequest = (values) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useExpenseFormContext(); const { branches, isBranchesSuccess, isNewMode } = useExpenseFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
/** /**

View File

@@ -231,25 +231,25 @@ export const handleErrors = (errors, { setErrors }) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useBillFormContext(); const { branches, isBranchesSuccess, isNewMode } = useBillFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
export const useSetPrimaryWarehouseToForm = () => { export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useBillFormContext(); const { warehouses, isWarehousesSuccess, isNewMode } = useBillFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isWarehousesSuccess) { if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse = const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses); warehouses.find((b) => b.primary) || first(warehouses);
@@ -257,7 +257,7 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id); setFieldValue('warehouse_id', primaryWarehouse.id);
} }
} }
}, [isWarehousesSuccess, setFieldValue, warehouses]); }, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
}; };
/** /**

View File

@@ -156,25 +156,25 @@ export const useObserveVendorCreditNoSettings = (prefix, nextNumber) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useVendorCreditNoteFormContext(); const { branches, isBranchesSuccess, isNewMode } = useVendorCreditNoteFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
export const useSetPrimaryWarehouseToForm = () => { export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useVendorCreditNoteFormContext(); const { warehouses, isWarehousesSuccess, isNewMode } = useVendorCreditNoteFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isWarehousesSuccess) { if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse = const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses); warehouses.find((b) => b.primary) || first(warehouses);
@@ -182,7 +182,7 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id); setFieldValue('warehouse_id', primaryWarehouse.id);
} }
} }
}, [isWarehousesSuccess, setFieldValue, warehouses]); }, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
}; };
/** /**

View File

@@ -115,17 +115,17 @@ export const transformFormToRequest = (form) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = usePaymentMadeFormContext(); const { branches, isBranchesSuccess, isNewMode } = usePaymentMadeFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
/** /**

View File

@@ -148,25 +148,25 @@ export const entriesFieldShouldUpdate = (newProps, oldProps) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useCreditNoteFormContext(); const { branches, isBranchesSuccess, isNewMode } = useCreditNoteFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
export const useSetPrimaryWarehouseToForm = () => { export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useCreditNoteFormContext(); const { warehouses, isWarehousesSuccess, isNewMode } = useCreditNoteFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isWarehousesSuccess) { if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse = const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses); warehouses.find((b) => b.primary) || first(warehouses);
@@ -174,7 +174,7 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id); setFieldValue('warehouse_id', primaryWarehouse.id);
} }
} }
}, [isWarehousesSuccess, setFieldValue, warehouses]); }, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
}; };
/** /**

View File

@@ -182,10 +182,10 @@ export const transfromsFormValuesToRequest = (values) => {
export const useSetPrimaryWarehouseToForm = () => { export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useEstimateFormContext(); const { warehouses, isWarehousesSuccess, isNewMode } = useEstimateFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isWarehousesSuccess) { if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse = const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses); warehouses.find((b) => b.primary) || first(warehouses);
@@ -193,22 +193,22 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id); setFieldValue('warehouse_id', primaryWarehouse.id);
} }
} }
}, [isWarehousesSuccess, setFieldValue, warehouses]); }, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
}; };
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useEstimateFormContext(); const { branches, isBranchesSuccess, isNewMode } = useEstimateFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
/** /**

View File

@@ -264,10 +264,10 @@ const transformPaymentMethodsToForm = (
export const useSetPrimaryWarehouseToForm = () => { export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useInvoiceFormContext(); const { warehouses, isWarehousesSuccess, isNewMode } = useInvoiceFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isWarehousesSuccess) { if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse = const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses); warehouses.find((b) => b.primary) || first(warehouses);
@@ -275,22 +275,22 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id); setFieldValue('warehouse_id', primaryWarehouse.id);
} }
} }
}, [isWarehousesSuccess, setFieldValue, warehouses]); }, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
}; };
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useInvoiceFormContext(); const { branches, isBranchesSuccess, isNewMode } = useInvoiceFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
/** /**

View File

@@ -177,17 +177,17 @@ export const transformFormToRequest = (form) => {
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = usePaymentReceiveFormContext(); const { branches, isBranchesSuccess, isNewMode } = usePaymentReceiveFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
/** /**

View File

@@ -173,10 +173,10 @@ export const transformFormValuesToRequest = (values) => {
export const useSetPrimaryWarehouseToForm = () => { export const useSetPrimaryWarehouseToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { warehouses, isWarehousesSuccess } = useReceiptFormContext(); const { warehouses, isWarehousesSuccess, isNewMode } = useReceiptFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isWarehousesSuccess) { if (isWarehousesSuccess && isNewMode) {
const primaryWarehouse = const primaryWarehouse =
warehouses.find((b) => b.primary) || first(warehouses); warehouses.find((b) => b.primary) || first(warehouses);
@@ -184,22 +184,22 @@ export const useSetPrimaryWarehouseToForm = () => {
setFieldValue('warehouse_id', primaryWarehouse.id); setFieldValue('warehouse_id', primaryWarehouse.id);
} }
} }
}, [isWarehousesSuccess, setFieldValue, warehouses]); }, [isWarehousesSuccess, setFieldValue, warehouses, isNewMode]);
}; };
export const useSetPrimaryBranchToForm = () => { export const useSetPrimaryBranchToForm = () => {
const { setFieldValue } = useFormikContext(); const { setFieldValue } = useFormikContext();
const { branches, isBranchesSuccess } = useReceiptFormContext(); const { branches, isBranchesSuccess, isNewMode } = useReceiptFormContext();
React.useEffect(() => { React.useEffect(() => {
if (isBranchesSuccess) { if (isBranchesSuccess && isNewMode) {
const primaryBranch = branches.find((b) => b.primary) || first(branches); const primaryBranch = branches.find((b) => b.primary) || first(branches);
if (primaryBranch) { if (primaryBranch) {
setFieldValue('branch_id', primaryBranch.id); setFieldValue('branch_id', primaryBranch.id);
} }
} }
}, [isBranchesSuccess, setFieldValue, branches]); }, [isBranchesSuccess, setFieldValue, branches, isNewMode]);
}; };
/** /**