From ef2846f62644948b6d60953e7c738f2ee1c95ade Mon Sep 17 00:00:00 2001 From: mifi Date: Wed, 24 Jan 2024 17:18:42 -0500 Subject: [PATCH] Fixes for a few oddities and the Traefik issues --- .../binner/components/Bins/Bins.tsx | 12 +-- .../components/ProductInfo/ProductInfo.tsx | 81 ++++++++++++------- src/app/(authenticated)/binner/page.tsx | 10 ++- src/app/lib/barcode.ts | 1 - 4 files changed, 66 insertions(+), 38 deletions(-) diff --git a/src/app/(authenticated)/binner/components/Bins/Bins.tsx b/src/app/(authenticated)/binner/components/Bins/Bins.tsx index 6c14c42..572664d 100644 --- a/src/app/(authenticated)/binner/components/Bins/Bins.tsx +++ b/src/app/(authenticated)/binner/components/Bins/Bins.tsx @@ -18,29 +18,29 @@ export function Bins() { switch (event.key) { case 'ArrowDown': event.preventDefault(); - setBin(Bin.LOSS); + !!item && setBin(Bin.LOSS); break; case 'ArrowLeft': event.preventDefault(); - setBin(Bin.PROCESS); + !!item && setBin(Bin.PROCESS); break; case 'ArrowRight': event.preventDefault(); - setBin(Bin.SHOULDER_TAP); + !!item && setBin(Bin.SHOULDER_TAP); break; case 'ArrowUp': event.preventDefault(); - setBin(Bin.DONATE); + !!item && setBin(Bin.DONATE); break; } - }, [bin, item, setBin, setItem]); + }, [item, setBin]); useEffect(() => { window.addEventListener('keydown', handleKeydown); return () => { window.removeEventListener('keydown', handleKeydown); }; - }, []); + }, [handleKeydown]); return (
diff --git a/src/app/(authenticated)/binner/components/ProductInfo/ProductInfo.tsx b/src/app/(authenticated)/binner/components/ProductInfo/ProductInfo.tsx index bc1e1fb..c328729 100644 --- a/src/app/(authenticated)/binner/components/ProductInfo/ProductInfo.tsx +++ b/src/app/(authenticated)/binner/components/ProductInfo/ProductInfo.tsx @@ -15,7 +15,6 @@ export function ProductInfo() { const { item, setItem } = useContext(BinnerContext); const { processors } = useContext(SupplyChainContext); const [inputItem, setInputItem] = useState | null>(null); - const dateRef = useRef(null); const weightRef = useRef(null); const getProcessorByBarcodeId = useGetProcessorByBarcodeId(); @@ -24,16 +23,32 @@ export function ProductInfo() { const [isEntryMode, setIsEntryMode] = useState(!isCompleteItem(item)); useEffect(() => { + console.log('item', { item, complete: isCompleteItem(item) }); setIsEntryMode(!isCompleteItem(item)); }, [item]) useEffect(() => { if (isCompleteItem(inputItem)) { + console.log('inputItem', { inputItem, barcode: `${inputItem?.product}${inputItem?.date}${inputItem?.processor}${inputItem?.weight}` }); setItem(barcodeToProduct(`${inputItem?.product}${inputItem?.date}${inputItem?.processor}${inputItem?.weight}`)); setInputItem(null); } - setIsEntryMode(!isCompleteItem(inputItem)); - }, [inputItem]) + }, [inputItem]); + + const getDateString = (date: Date) => { + const yyyy = date.getFullYear(); + let mm: number | string = date.getMonth() + 1; + let dd: number | string = date.getDate(); + + if (dd < 10) { + dd = '0' + dd; + } + + if (mm < 10) { + mm = '0' + mm; + } + return `${yyyy}-${mm}-${dd}`; + } return (
@@ -58,13 +73,13 @@ export function ProductInfo() {
{ - dateRef.current.value = e.currentTarget.value; - setInputItem({ ...inputItem || {}, date: dateToOrdinal(new Date(e.currentTarget.value)) }) - }} + onChange={isEntryMode ? (e) => { + setInputItem({ ...inputItem || {}, date: `${dateToOrdinal(new Date(e.currentTarget.valueAsNumber))}` }) + } : undefined} />
@@ -86,26 +101,36 @@ export function ProductInfo() {
-
- - {isEntryMode && ( - + {isEntryMode ? ( +
+ + +
+ ) : ( + )} -
diff --git a/src/app/(authenticated)/binner/page.tsx b/src/app/(authenticated)/binner/page.tsx index 558e268..95f00fd 100644 --- a/src/app/(authenticated)/binner/page.tsx +++ b/src/app/(authenticated)/binner/page.tsx @@ -22,17 +22,21 @@ export default function Page() { break; case 'Escape': event.preventDefault(); - setBin(null); + if (bin !== null) { + setBin(null); + } else { + setItem(null); + } break; } - }, [bin, item, setBin, setItem]); + }, [bin, setBin, setItem]); useEffect(() => { window.addEventListener('keydown', handleKeydown); return () => { window.removeEventListener('keydown', handleKeydown); }; - }, []); + }, [handleKeydown]); return (
diff --git a/src/app/lib/barcode.ts b/src/app/lib/barcode.ts index d9c6eb7..3b806f3 100644 --- a/src/app/lib/barcode.ts +++ b/src/app/lib/barcode.ts @@ -2,7 +2,6 @@ import { faker } from '@faker-js/faker'; import { Product } from "./product.enum"; import { dateToOrdinal } from './ordinalDate'; -import { ValueOf } from 'next/dist/shared/lib/constants'; export type Barcode = string;