function Taboor() {
const { lang, t } = useLang();
return (
{/* bg layers */}
{/* left: copy */}
{t.taboor.productTag}
{t.taboor.badge}
{t.taboor.subtitle}
{t.taboor.description}
{/* features */}
{[
{ t: t.taboor.f1Title, d: t.taboor.f1Desc, c: '#06B6D4' },
{ t: t.taboor.f2Title, d: t.taboor.f2Desc, c: '#3B82F6' },
{ t: t.taboor.f3Title, d: t.taboor.f3Desc, c: '#A855F7' },
].map((f, i) => (
))}
{/* right: product showcase */}
);
}
function TaboorShowcase() {
const { lang, t } = useLang();
const [now, setNow] = React.useState(247);
React.useEffect(() => {
const id = setInterval(() => setNow(n => n + 1), 4200);
return () => clearInterval(id);
}, []);
const queue = [
{ n: now + 1, name: lang === 'ar' ? 'محمد أ.' : 'Mohammed A.', wait: '00:14', counter: 'A2' },
{ n: now + 2, name: lang === 'ar' ? 'سارة ك.' : 'Sara K.', wait: '00:42', counter: '—' },
{ n: now + 3, name: lang === 'ar' ? 'فهد ر.' : 'Fahad R.', wait: '01:06', counter: '—' },
{ n: now + 4, name: lang === 'ar' ? 'نورة ع.' : 'Noura A.', wait: '01:38', counter: '—' },
];
return (
{/* main display card */}
{/* top bar */}
{/* big now-serving card */}
{lang === 'ar' ? 'NOW SERVING' : 'NOW SERVING'}
{t.taboor.demoNow}
{String(now).padStart(3, '0')}
{t.taboor.demoCounter}
A1
LIVE
{/* queue list */}
{lang === 'ar' ? 'IN QUEUE' : 'IN QUEUE'}
{queue.length} pending
{queue.map((q, i) => (
{String(q.n).padStart(3, '0')}
{q.name}
{q.wait}
{q.counter}
))}
{/* mini stats */}
{[
{ l: 'served today', v: '1,284', c: '#06B6D4' },
{ l: 'avg wait', v: '03:12', c: '#3B82F6' },
{ l: 'counters', v: '06 / 06', c: '#A855F7' },
].map((s, i) => (
))}
{/* floating mini card */}
your ticket
{String(now + 3).padStart(3, '0')}
~ 4 min remaining
);
}
window.Taboor = Taboor;