// VMAX POS — the maker side: shared order queue, one-tap claim (first-tap-wins), mark done. (function () { const DS = window.VMAX365DesignSystem_0f78b2; const { SegmentedControl, Button, Badge, TempTag } = DS; const { Avatar, EmptyState, PinDialog, pushToast } = window.VMAXW; const { useVMAX } = window.VMAXStore; function MakerQueueSurface({ session }) { const [s, a] = useVMAX(); const [order, setOrder] = React.useState('new'); const me = session.active ? session.active.name : 'Maker'; const [claimFor, setClaimFor] = React.useState(null); const doClaim = (o) => { if (s.settings && s.settings.pinForClaim) setClaimFor(o); else { a.claim(o.id, me); pushToast('Claimed #' + o.id); } }; let q = s.queue.filter((o) => o.status !== 'done'); const unclaimed = q.filter((o) => !o.maker).length; q = order === 'new' ? q : [...q].reverse(); return (

Order queue

{q.length} active · shared pool · making as {me}

{unclaimed > 0 && {unclaimed} to claim}
{q.length === 0 ? ( ) : (
{q.map((o) => { const claimed = !!o.maker; const mine = claimed && o.maker === me; return (
#{o.id}
{o.mode}
{o.lines.map((l, i) => (
{l.qty}× {l.name} {l.temp && }
))}
{claimed ? (
{mine ? 'You' : o.maker}
) : ( )}
); })}
)} session.verify(session.active.id, pin)} onClose={() => setClaimFor(null)} onSuccess={() => { a.claim(claimFor.id, me); pushToast('Claimed #' + claimFor.id); setClaimFor(null); }} />
); } window.VMAXQUEUE = { MakerQueueSurface }; })();