Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 

34 righe
1.2 KiB

  1. import { getCards, getPortals } from '@/lib/db';
  2. import PublicGrid from '@/components/PublicGrid';
  3. import HeroBanner from '@/components/HeroBanner';
  4. import FullscreenLock from '@/components/FullscreenLock';
  5. export const dynamic = 'force-dynamic';
  6. export default async function PublicHomePage() {
  7. const portals = await getPortals();
  8. const cards = await getCards();
  9. const portal = portals[0] || {};
  10. // Kiosk takeover: una card FULLSCREEN_LOCK fa sparire grid, hero e tutto il resto.
  11. const sortedCards = [...cards].sort((a, b) => (a.displayOrder ?? 0) - (b.displayOrder ?? 0));
  12. const lockCard = sortedCards.find(c => c.cardType === 'FULLSCREEN_LOCK');
  13. if (lockCard) {
  14. return <FullscreenLock card={lockCard} />;
  15. }
  16. return (
  17. <main className="min-h-screen bg-gray-100 font-sans">
  18. <HeroBanner portal={portal} />
  19. <div className="max-w-[1600px] mx-auto py-12 px-4">
  20. {cards.length > 0 ? (
  21. <PublicGrid cards={cards} maxCols={portal.maxGridColumns || 5} />
  22. ) : (
  23. <div className="text-center text-gray-500 py-20">
  24. <p>No cards have been added yet.</p>
  25. </div>
  26. )}
  27. </div>
  28. </main>
  29. );
  30. }