import { useQuery, useSuspenseQuery } from "@tanstack/react-query"; import { createFileRoute } from "@tanstack/react-router"; import { createColumnHelper } from "@tanstack/react-table"; import { formatInTimeZone } from "date-fns-tz"; import { toast } from "sonner"; import { Button } from "../../../../components/ui/button"; import { useSocketRoom } from "../../../../hooks/socket.io.hook"; import { api } from "../../../../lib/apiHelper"; import { useAppForm } from "../../../../lib/formSutff"; import { getActiveLoadingOrders } from "../../../../lib/queries/getActiveDockScanners"; import { getActiveDockScanners } from "../../../../lib/queries/getActiveLoadingOrders"; import { permissionQuery } from "../../../../lib/queries/permsCheck"; import LstTable from "../../../../lib/tableStuff/LstTable"; import SearchableHeader from "../../../../lib/tableStuff/SearchableHeader"; import { finishLoadingOrder } from ".."; export const Route = createFileRoute( "/warehouse/dockdoorscanning/scans/$dockScans", )({ component: RouteComponent, }); function RouteComponent() { const { dockScans } = Route.useParams(); const { data: logs, clearRoom } = useSocketRoom( `dockDoorLoading:${dockScans}`, ); const { data, refetch } = useSuspenseQuery(getActiveDockScanners()); const { data: loadingPlanItems, refetch: refetchActiveLoading } = useSuspenseQuery(getActiveLoadingOrders()); const { data: canReadWarehouse = false } = useQuery( permissionQuery({ warehouse: ["delete"], }), ); const columnHelper = createColumnHelper(); const column = [ columnHelper.accessor("loadingOrder", { header: ({ column }) => ( ), filterFn: "includesString", cell: (i) => i.getValue(), }), columnHelper.accessor("loadingUnit", { header: ({ column }) => ( ), filterFn: "includesString", cell: (i) => i.getValue(), }), columnHelper.accessor("loadingUnitStatus", { header: ({ column }) => ( ), filterFn: "includesString", cell: (i) => i.getValue(), }), columnHelper.accessor("message", { header: ({ column }) => ( ), filterFn: "includesString", cell: (i) => i.getValue(), }), columnHelper.accessor("upd_date", { header: ({ column }) => ( ), filterFn: "includesString", cell: (i) => { function isDateValid(date: any) { return date instanceof Date && !isNaN(date.getTime()); } const trueDate = isDateValid(new Date(i.getValue())) ? formatInTimeZone( i.getValue(), `${window.LST_CONFIG?.timezone}`, "MM/dd/yyyy HH:mm:ss", ) : "invalid time"; return {trueDate}; }, }), columnHelper.accessor("status", { header: ({ column }) => ( ), filterFn: "includesString", cell: (i) => i.getValue(), }), ]; const form = useAppForm({ defaultValues: { runningNo: "", dockId: data[0].dockId, }, onSubmit: async ({ value }) => { try { const res = await api.post("/dockDoor/loadUnit", value, { validateStatus: (status) => status < 500, }); refetchActiveLoading(); form.reset(); if (!res.data.success) { toast.error(res.data.data.message); return; } toast.success(res.data.message); } catch (error) { console.log(error); } }, }); const loadingPlan = data[0].currentLoadingOrder !== "" ? loadingPlanItems.filter( (x: any) => x.id === Number(data[0].currentLoadingOrder), ) : []; return (

You are monitoring scans for {data[0].name}

Current load status:{" "} {loadingPlan && loadingPlan.length !== 0 ? ( {loadingPlan[0].loadingPlanItems[0].loadedQuantityLUs} /{" "} {loadingPlan[0].loadingPlanItems[0].plannedQuantityLUs} ) : ( "No active loading orders )}

{ e.preventDefault(); form.handleSubmit(); }} >
{(field) => ( )}
Submit
{loadingPlan && loadingPlan.length > 0 && (
{canReadWarehouse && ( )}
)}
); }