From 79616c8fdcaebdf3984b5a910f117d82833dd4d3 Mon Sep 17 00:00:00 2001 From: Ola Malmgren Date: Fri, 22 May 2026 23:27:45 +0200 Subject: [PATCH] fix state --- src/components/admin/FulfillmentTable.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/admin/FulfillmentTable.tsx b/src/components/admin/FulfillmentTable.tsx index 3eb91df..7e68110 100644 --- a/src/components/admin/FulfillmentTable.tsx +++ b/src/components/admin/FulfillmentTable.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useState, useTransition } from 'react'; +import { useEffect, useState, useTransition } from 'react'; import { useTranslations, useLocale } from 'next-intl'; import { setItemFulfillment, @@ -109,6 +109,13 @@ function FulfillmentRow({ const [delivered, setDelivered] = useState(item.deliveredQuantity); const [returned, setReturned] = useState(item.returnedQuantity); + // Sync local state when server data refreshes (e.g. after deliver-all / + // return-all bulk actions). Without this, the inputs stay stale until reload. + useEffect(() => { + setDelivered(item.deliveredQuantity); + setReturned(item.returnedQuantity); + }, [item.deliveredQuantity, item.returnedQuantity]); + const outstanding = Math.max(0, delivered - returned); const dirty = delivered !== item.deliveredQuantity || returned !== item.returnedQuantity;