import { Button, Container, Stack, Typography } from '@mui/material'; import { useParams, useNavigate, Link as RouterLink } from 'react-router-dom'; import { useEffect, useMemo } from 'react'; import { useAreas, usePickItems, usePickList, useProducts } from '../hooks/dataHooks'; import { useDatabase } from '../context/DBProvider'; import { PickItemRow } from '../components/PickItemRow'; export const ActivePickListScreen = () => { const { id } = useParams(); const pickList = usePickList(id); const items = usePickItems(id); const products = useProducts(); const areas = useAreas(); const db = useDatabase(); const navigate = useNavigate(); useEffect(() => { if (!id || !pickList) return; }, [id, pickList]); const areaName = useMemo( () => areas.find((area) => area.id === pickList?.area_id)?.name ?? 'Area', [areas, pickList?.area_id], ); const handleIncrementUnit = async (itemId: string) => { const existing = await db.pickItems.get(itemId); if (!existing) return; await db.pickItems.update(itemId, { quantity_units: existing.quantity_units + 1, updated_at: Date.now(), }); }; const handleIncrementBulk = async (itemId: string) => { const existing = await db.pickItems.get(itemId); if (!existing) return; await db.pickItems.update(itemId, { quantity_bulk: existing.quantity_bulk + 1, updated_at: Date.now(), }); }; const handleSwipeLeft = async (itemId: string) => { await db.pickItems.update(itemId, { status: 'picked', updated_at: Date.now() }); }; const handleSwipeRight = async (itemId: string) => { await db.pickItems.delete(itemId); }; const completeList = async () => { if (!id) return; await db.pickLists.update(id, { completed_at: Date.now() }); navigate('/pick-lists'); }; return ( {areaName} List {items.map((item) => ( p.id === item.product_id)} onIncrementUnit={() => handleIncrementUnit(item.id)} onIncrementBulk={() => handleIncrementBulk(item.id)} onSwipeLeft={() => handleSwipeLeft(item.id)} onSwipeRight={() => handleSwipeRight(item.id)} /> ))} ); };