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() {
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;