From 1121fee464da0c067c1d03a3126c82e39bfed764 Mon Sep 17 00:00:00 2001 From: toririm Date: Wed, 2 Oct 2024 08:47:04 +0900 Subject: [PATCH] =?UTF-8?q?=E3=81=A8=E3=82=8A=E3=81=82=E3=81=88=E3=81=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/pages/CashierV2.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/components/pages/CashierV2.tsx b/app/components/pages/CashierV2.tsx index 166ca74a..aab3ffb8 100644 --- a/app/components/pages/CashierV2.tsx +++ b/app/components/pages/CashierV2.tsx @@ -31,7 +31,7 @@ type props = { }; export type Action = - | { type: "clear" } + | { type: "clear"; effectFn?: () => void } | { type: "updateOrderId"; orderId: number } | { type: "addItem"; @@ -86,10 +86,16 @@ const reducer = (state: OrderEntity, action: Action): OrderEntity => { updated.description = description; return updated; }; + const clear = (effectFn?: () => void) => { + if (effectFn) { + effectFn(); + } + return OrderEntity.createNew({ orderId: state.orderId }); + }; switch (action.type) { case "clear": - return OrderEntity.createNew({ orderId: state.orderId }); + return clear(action.effectFn); case "applyDiscount": return applyDiscount(action.discountOrder); case "removeDiscount": @@ -122,6 +128,7 @@ const CashierV2 = ({ items, orders, submitPayload }: props) => { const [inputStatus, setInputStatus] = useState<(typeof InputStatus)[number]>("discount"); const [dialogOpen, setDialogOpen] = useState(false); + const [inputSession, setInputSession] = useState(new Date()); const nextOrderId = useMemo(() => latestOrderId(orders) + 1, [orders]); useEffect(() => { @@ -152,7 +159,7 @@ const CashierV2 = ({ items, orders, submitPayload }: props) => { if (newOrder.items.length === 0) { return; } - dispatch({ type: "clear" }); + dispatch({ type: "clear", effectFn: () => setInputSession(new Date()) }); submitPayload(newOrder); }, [charge, newOrder, submitPayload]); @@ -230,6 +237,7 @@ const CashierV2 = ({ items, orders, submitPayload }: props) => {

{newOrder.billingAmount}

{ )} /> dispatch({ type: "setReceived", received: text }), @@ -253,6 +262,7 @@ const CashierV2 = ({ items, orders, submitPayload }: props) => { /> dispatch({ type: "setDescription", description: text }), [],