From 8388425195c983f0343a66830b95734d3e5db325 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Sun, 28 Jun 2026 00:47:49 +0000 Subject: [PATCH] Memoize build lines --- src/frontend/src/forms/BuildForms.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx index a16aff1b67..4c8535a430 100644 --- a/src/frontend/src/forms/BuildForms.tsx +++ b/src/frontend/src/forms/BuildForms.tsx @@ -706,10 +706,27 @@ export function useAllocateStockToBuildForm({ lineItems: any[]; onFormSuccess: (response: any) => void; }) { + useWhyDidYouUpdate('useAllocateStockToBuildForm', { + buildId, + output, + outputId, + build, + lineItems + }); + const [sourceLocation, setSourceLocation] = useState( undefined ); + // Memoize the line items once to avoid re-rendering + const buildLines = useMemo(() => { + return lineItems.map((item) => { + return { + ...item + }; + }); + }, [lineItems]); + const buildAllocateFields: ApiFormFieldSet = useMemo(() => { const fields: ApiFormFieldSet = { items: { @@ -726,7 +743,7 @@ export function useAllocateStockToBuildForm({ modelRenderer: (row: TableFieldRowProps) => { // Find the matching record from the passed 'lineItems' const record = - lineItems.find((item) => item.pk == row.item.build_line) ?? {}; + buildLines.find((item) => item.pk == row.item.build_line) ?? {}; return (