Sfoglia il codice sorgente

putaway fix

stable1
CANCERYS\kw093 2 settimane fa
parent
commit
6866832a18
1 ha cambiato i file con 14 aggiunte e 4 eliminazioni
  1. +14
    -4
      src/components/PutAwayScan/PutAwayScan.tsx

+ 14
- 4
src/components/PutAwayScan/PutAwayScan.tsx Vedi File

@@ -10,7 +10,7 @@ import {
Stack, Stack,
Typography, Typography,
} from "@mui/material"; } from "@mui/material";
import { useCallback, useEffect, useMemo, useState } from "react";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import ReactQrCodeScanner, { import ReactQrCodeScanner, {
ScannerConfig, ScannerConfig,
} from "../ReactQrCodeScanner/ReactQrCodeScanner"; } from "../ReactQrCodeScanner/ReactQrCodeScanner";
@@ -20,7 +20,7 @@ import {
import { QrCodeInfo } from "@/app/api/qrcode"; import { QrCodeInfo } from "@/app/api/qrcode";
import { Check, QrCodeScanner, Warehouse } from "@mui/icons-material"; import { Check, QrCodeScanner, Warehouse } from "@mui/icons-material";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { useSearchParams } from "next/navigation";
import { usePathname, useRouter, useSearchParams } from "next/navigation";
import { useQrCodeScannerContext } from "../QrCodeScannerProvider/QrCodeScannerProvider"; import { useQrCodeScannerContext } from "../QrCodeScannerProvider/QrCodeScannerProvider";
import PutAwayModal from "./PutAwayModal"; import PutAwayModal from "./PutAwayModal";
import { PutAwayRecord } from "."; import { PutAwayRecord } from ".";
@@ -35,6 +35,9 @@ type ScanStatusType = "pending" | "scanning" | "retry";
const PutAwayScan: React.FC<Props> = ({ warehouse }) => { const PutAwayScan: React.FC<Props> = ({ warehouse }) => {
const { t } = useTranslation("putAway"); const { t } = useTranslation("putAway");
const searchParams = useSearchParams(); const searchParams = useSearchParams();
const pathname = usePathname();
const router = useRouter();
const deepLinkConsumedRef = useRef(false);


const [scanDisplay, setScanDisplay] = useState<ScanStatusType>("pending"); const [scanDisplay, setScanDisplay] = useState<ScanStatusType>("pending");
const [openPutAwayModal, setOpenPutAwayModal] = useState(false); const [openPutAwayModal, setOpenPutAwayModal] = useState(false);
@@ -105,11 +108,18 @@ const PutAwayScan: React.FC<Props> = ({ warehouse }) => {


/** Deep link from nav alert: /putAway?stockInLineId=… */ /** Deep link from nav alert: /putAway?stockInLineId=… */
useEffect(() => { useEffect(() => {
if (!stockInLineIdQ) return;
if (!stockInLineIdQ || deepLinkConsumedRef.current) return;
const id = parseInt(stockInLineIdQ, 10); const id = parseInt(stockInLineIdQ, 10);
if (!Number.isFinite(id) || id <= 0) return; if (!Number.isFinite(id) || id <= 0) return;
deepLinkConsumedRef.current = true;
setScannedSilId((prev) => (prev === id ? prev : id)); setScannedSilId((prev) => (prev === id ? prev : id));
}, [stockInLineIdQ]);

// Consume deep link once, then remove it from URL
const nextParams = new URLSearchParams(searchParams.toString());
nextParams.delete("stockInLineId");
const nextQuery = nextParams.toString();
router.replace(nextQuery ? `${pathname}?${nextQuery}` : pathname);
}, [stockInLineIdQ, pathname, router, searchParams]);


// Get Scanned Values // Get Scanned Values
useEffect(() => { useEffect(() => {


Caricamento…
Annulla
Salva