Scaffold and Phase 1
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Auctioneer console – optimised for tablet in landscape.
|
||||
* Shows: current lot, current bid, next callable bid, recent bid stream,
|
||||
* and controls: Activate / Call Next Bid / Going Once / Going Twice / Sold / Pass.
|
||||
*
|
||||
* TODO:
|
||||
* - Subscribe to all live auction socket events
|
||||
* - Emit auctioneer_* events on button press
|
||||
* - Display large-format current bid and paddle number
|
||||
*/
|
||||
export default function AuctioneerPage() {
|
||||
return (
|
||||
<main className="min-h-screen bg-gray-900 text-white p-6 space-y-6">
|
||||
<h1 className="text-2xl font-bold">Auctioneer Console</h1>
|
||||
<div className="border border-dashed border-gray-600 rounded-xl p-8 text-center text-gray-500 text-sm">
|
||||
Live auction controls — not yet implemented
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Check-in station – search bidders, scan QR, assign paddle, confirm payment readiness.
|
||||
*
|
||||
* TODO:
|
||||
* - Search /api/bidders?eventId=&q=
|
||||
* - QR scanner via device camera
|
||||
* - POST /api/check-in/:id on confirm
|
||||
* - Show payment-on-file indicator
|
||||
*/
|
||||
export default function CheckInPage() {
|
||||
return (
|
||||
<main className="p-4 space-y-4">
|
||||
<h1 className="text-2xl font-bold">Check-In</h1>
|
||||
<div className="border border-dashed border-gray-300 rounded-xl p-8 text-center text-gray-400 text-sm">
|
||||
QR scan & bidder search — not yet implemented
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Display board – read-only fullscreen view for projector / TV.
|
||||
* Shows: current item, current bid, bidder paddle, org branding,
|
||||
* and optionally a fundraising thermometer.
|
||||
*
|
||||
* TODO:
|
||||
* - Subscribe to live auction events (read-only socket connection)
|
||||
* - Fullscreen CSS layout with large typography
|
||||
* - Paddle raise thermometer via paddle_raise_update events
|
||||
*/
|
||||
export default function DisplayBoardPage() {
|
||||
return (
|
||||
<main className="min-h-screen bg-brand-900 text-white flex flex-col items-center justify-center p-8 space-y-8">
|
||||
<h1 className="text-5xl font-black tracking-tight">Storybid</h1>
|
||||
<div className="text-center space-y-2">
|
||||
<p className="text-2xl text-brand-100 uppercase tracking-widest">Current Lot</p>
|
||||
<p className="text-6xl font-bold">—</p>
|
||||
</div>
|
||||
<div className="text-center">
|
||||
<p className="text-xl text-brand-200">Current Bid</p>
|
||||
<p className="text-8xl font-black">$—</p>
|
||||
<p className="text-2xl text-brand-300 mt-2">Paddle —</p>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Spotter mode – floor volunteer enters bids by paddle number.
|
||||
* Simple: paddle number input + confirm button. Emits auctioneer_accept_bid.
|
||||
*
|
||||
* TODO:
|
||||
* - Show current item and called amount (read-only)
|
||||
* - Large paddle number input with numeric keyboard
|
||||
* - Emit place_live_bid (spotter path) on confirm
|
||||
*/
|
||||
export default function SpotterPage() {
|
||||
return (
|
||||
<main className="min-h-screen p-6 space-y-6">
|
||||
<h1 className="text-2xl font-bold">Spotter</h1>
|
||||
<div className="border border-dashed border-gray-300 rounded-xl p-8 text-center text-gray-400 text-sm">
|
||||
Paddle entry — not yet implemented
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user