@@ -31,14 +31,20 @@ export default async function Home() {
31
31
const companies = await CompanyService . getCompanies ( ) ;
32
32
const speakers = await SpeakerService . getSpeakers ( ) ;
33
33
34
- // choose upcoming sessions
34
+ // choose upcoming or random sessions
35
35
const tenMinutesEarlier = new Date ( new Date ( ) . getTime ( ) - 10 * 60 * 1000 ) ;
36
36
const upcomingSessions : SINFOSession [ ] = eventSessions
37
37
? eventSessions
38
38
. filter ( ( s ) => new Date ( s . date ) >= tenMinutesEarlier )
39
39
. sort ( ( a , b ) => new Date ( a . date ) . getTime ( ) - new Date ( b . date ) . getTime ( ) )
40
40
. slice ( 0 , N_SESSION_TILES )
41
41
: [ ] ;
42
+ const highlightedSessions =
43
+ upcomingSessions . length > 0
44
+ ? upcomingSessions
45
+ : ( eventSessions
46
+ ?. sort ( ( ) => Math . random ( ) - 0.5 )
47
+ . slice ( 0 , N_SESSION_TILES ) ?? [ ] ) ;
42
48
43
49
// choose random companies
44
50
const highlightedCompanies : Company [ ] = companies
@@ -50,9 +56,15 @@ export default async function Home() {
50
56
? speakers . sort ( ( ) => Math . random ( ) - 0.5 ) . slice ( 0 , N_SPEAKER_TILES )
51
57
: [ ] ;
52
58
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 ] ;
53
65
const spinWheelData = getUserActiveSignatureData ( user , event ?. id ?? `` ) ;
54
66
const showSpinWheelSection =
55
- isAttendee ( user . role ) && ! spinWheelData ?. redeemed ;
67
+ standDates . has ( today ) && isAttendee ( user . role ) && ! spinWheelData ?. redeemed ;
56
68
57
69
return (
58
70
< div className = "container mx-auto" >
@@ -78,9 +90,15 @@ export default async function Home() {
78
90
) }
79
91
80
92
{ /* 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
+ ) )
84
102
) : (
85
103
< ListCard title = "Nothing to show" />
86
104
) }
0 commit comments