@@ -31,14 +31,20 @@ export default async function Home() {
3131 const companies = await CompanyService . getCompanies ( ) ;
3232 const speakers = await SpeakerService . getSpeakers ( ) ;
3333
34- // choose upcoming sessions
34+ // choose upcoming or random sessions
3535 const tenMinutesEarlier = new Date ( new Date ( ) . getTime ( ) - 10 * 60 * 1000 ) ;
3636 const upcomingSessions : SINFOSession [ ] = eventSessions
3737 ? eventSessions
3838 . filter ( ( s ) => new Date ( s . date ) >= tenMinutesEarlier )
3939 . sort ( ( a , b ) => new Date ( a . date ) . getTime ( ) - new Date ( b . date ) . getTime ( ) )
4040 . slice ( 0 , N_SESSION_TILES )
4141 : [ ] ;
42+ const highlightedSessions =
43+ upcomingSessions . length > 0
44+ ? upcomingSessions
45+ : ( eventSessions
46+ ?. sort ( ( ) => Math . random ( ) - 0.5 )
47+ . slice ( 0 , N_SESSION_TILES ) ?? [ ] ) ;
4248
4349 // choose random companies
4450 const highlightedCompanies : Company [ ] = companies
@@ -50,9 +56,15 @@ export default async function Home() {
5056 ? speakers . sort ( ( ) => Math . random ( ) - 0.5 ) . slice ( 0 , N_SPEAKER_TILES )
5157 : [ ] ;
5258
59+ let standDates = new Set (
60+ companies ?. flatMap (
61+ ( c ) => c . stands ?. flatMap ( ( cs ) => cs . date . slice ( 0 , 10 ) ) ?? [ ]
62+ ) ?? [ ]
63+ ) ;
64+ let today = new Date ( ) . toISOString ( ) . split ( "T" ) [ 0 ] ;
5365 const spinWheelData = getUserActiveSignatureData ( user , event ?. id ?? `` ) ;
5466 const showSpinWheelSection =
55- isAttendee ( user . role ) && ! spinWheelData ?. redeemed ;
67+ standDates . has ( today ) && isAttendee ( user . role ) && ! spinWheelData ?. redeemed ;
5668
5769 return (
5870 < div className = "container mx-auto" >
@@ -78,9 +90,15 @@ export default async function Home() {
7890 ) }
7991
8092 { /* Upcoming Sessions */ }
81- < List title = "Next Up" link = "/schedule?day=today" linkText = "See all" >
82- { upcomingSessions . length > 0 ? (
83- upcomingSessions . map ( ( s ) => < SessionTile key = { s . id } session = { s } /> )
93+ < List
94+ title = { upcomingSessions . length > 0 ? "Next Up" : "Sessions" }
95+ link = "/schedule?day=today"
96+ linkText = "See all"
97+ >
98+ { highlightedSessions . length > 0 ? (
99+ highlightedSessions . map ( ( s ) => (
100+ < SessionTile key = { s . id } session = { s } indicatePastSession = { false } />
101+ ) )
84102 ) : (
85103 < ListCard title = "Nothing to show" />
86104 ) }
0 commit comments