'use client'; import { useEffect, useState } from 'react'; import { BinsContents, getBinsContents, switchBin } from '@/app/lib/data/binned'; import { Binned, BinnedDocument } from '@/models/binned'; import { binToLabel } from '@/app/lib/bin.enum'; import styles from './page.module.scss'; import Link from 'next/link'; export default function Page() { const [bins, setBins] = useState(); const [dragging, setDragging] = useState(); useEffect(() => { async function fetchData() { const bins = await getBinsContents(); setBins(bins); } fetchData(); }, []); const handleDrop = async (event: React.DragEvent) => { event.preventDefault(); if (!dragging || !event.currentTarget.id) return; alert(`If this were functionally complete, the item would be moved from ${binToLabel(dragging.bin)} to ${binToLabel(parseInt(event.currentTarget.id))}`); await switchBin(parseInt(event.currentTarget.id), (dragging as BinnedDocument)._id); setDragging(undefined); }; if (!bins) return null; return (

Bin Contents

{Object.entries(bins).map(([k, v]) => (
event.preventDefault()} onDragOver={(event) => event.preventDefault()} onDrop={handleDrop} >

{binToLabel(parseInt(k))}

    {v.length > 0 && v.map((item) => (
  • setDragging(item)} draggable>{`${item.product} - ${item.weight}lbs`}
  • ))}
))}
); }