import axios from "axios"; import { format } from "date-fns-tz"; import { useFocusEffect } from "expo-router"; import type React from "react"; import { useCallback, useEffect, useState } from "react"; import { ScrollView, Text, View } from "react-native"; import { SafeAreaView } from "react-native-safe-area-context"; import Toast from "react-native-toast-message"; import { GlobalFooter } from "../../components/UpdateFooter"; import { Button } from "../../components/ui/button"; import { Card, CardContent, CardHeader } from "../../components/ui/card"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "../../components/ui/dialog"; import { useAppStore } from "../../hooks/useAppStore"; import { scannerFeedback } from "../../lib/feedbackScan"; import { type ZebraScanResult, zebraScanner } from "../../lib/ZebraScanner"; const InfoRow = ({ label, value, }: { label: string; value: React.ReactNode; }) => { return ( {label} {value} ); }; export default function PPOO() { const [units, setUnits] = useState(null); const serverIp = useAppStore((s) => s.serverIp); const handleScan = useCallback( async (scan: ZebraScanResult) => { setUnits(null); await scannerFeedback({ type: "scan", sound: true, vibrate: true, led: true, }); if (!scan.data.startsWith("loc")) { Toast.show({ type: "error", text1: "Scan error", text2: "The last scan was not a lane please try again", }); return; } try { const res = await axios.post( `http://${serverIp.trim()}:3000/lst/api/mobile/lanecheck`, { lane: "loc#1#0<", }, { timeout: 5000, }, ); if (res.status === 200) { setUnits(res.data); Toast.show({ type: "info", text1: "Lane Data", text2: "All Loading Units from this lane will be listed below", }); } } catch (error) { console.log(error); Toast.show({ type: "error", text1: "Lane Data", text2: "Error getting lane data please try again", }); } }, [serverIp.trim], ); useFocusEffect( useCallback(() => { zebraScanner.startListening(); const sub = zebraScanner.addScanListener((scan) => { //console.log("SCAN:", scan); handleScan(scan); }); return () => { sub.remove(); zebraScanner.stopListening(); //setUnits(null); }; }, [handleScan]), ); return ( {units ? ( // // // // {units.data?.map((i: any, index: any) => ( // // example // // ))} // // // There Are {units.data.length} units in PPOO {units.data.map((i, index) => ( {i.articleId} - {i.articleName} Running Number: {i.runningNumber ?? "Non barcoded"} Details for Article {i.articleId}, Rn: {i.runningNumber ?? "Non barcoded"}{" "} {i.state === "QualityBlocked" && ( )} {i.state === "QualityBlocked" && ( )} ))} ) : ( Please scan a lane to see all Units that are in the lane. )} ); }