@@ -36,7 +36,8 @@ const getTrackRoom = (num) => {
36
36
} ;
37
37
38
38
const ConferenceSchedule = ( ) => {
39
- const [ selectedTab , setSelectedTab ] = useState ( 1 ) ;
39
+ const defaultScheduleIndex = 1
40
+ const [ selectedTab , setSelectedTab ] = useState ( defaultScheduleIndex ) ;
40
41
41
42
const handleTabClick = ( index ) => {
42
43
setSelectedTab ( index ) ;
@@ -82,9 +83,8 @@ const ConferenceSchedule = () => {
82
83
{ ScheduleData . map ( ( item , index ) => (
83
84
< li className = "nav-item" role = "presentation" key = { index } >
84
85
< button
85
- className = { `nav-link ${
86
- index === selectedTab ? "active" : "nav-link-inactive"
87
- } `}
86
+ className = { `nav-link ${ index === selectedTab ? "active" : "nav-link-inactive"
87
+ } `}
88
88
id = { `pills-tab-${ index } ` }
89
89
data-bs-toggle = "pill"
90
90
data-bs-target = { `#pills-${ index } ` }
@@ -111,7 +111,7 @@ const ConferenceSchedule = () => {
111
111
>
112
112
< div className = "row" >
113
113
{ currentSchedule . schedule . map ( ( scheduleItem , idx ) => {
114
- const isLive = isEventLive ( scheduleItem . time ) ;
114
+ const isLive = ( selectedTab == defaultScheduleIndex && isEventLive ( scheduleItem . time ) ) ;
115
115
return (
116
116
< ScheduleCard
117
117
isLive = { isLive }
@@ -126,13 +126,13 @@ const ConferenceSchedule = () => {
126
126
</ div >
127
127
</ div >
128
128
{ /* Mobile Accordion */ }
129
-
130
129
< Accordion defaultActiveKey = { [ "1" ] } className = "d-block d-lg-none" >
131
130
{ ScheduleData . map ( ( item , idx ) => {
132
131
return (
133
132
< ScheduleAccordion
134
133
key = { idx }
135
134
id = { idx }
135
+ defaultScheduleIndex = { defaultScheduleIndex }
136
136
currentSchedule = { currentSchedule }
137
137
handleTabClick = { ( ) => handleTabClick ( idx ) }
138
138
{ ...item }
@@ -188,9 +188,8 @@ function ScheduleTalk({ title, speakers, track, size, proposalLink, isLive }) {
188
188
return (
189
189
< >
190
190
< div
191
- className = { `row talk-card align-items-center p-2 pb-2 ${
192
- size > 1 || "border-bottom"
193
- } `}
191
+ className = { `row talk-card align-items-center p-2 pb-2 ${ size > 1 || "border-bottom"
192
+ } `}
194
193
style = { { marginBottom : "0.8rem" } }
195
194
>
196
195
< div className = "col-4" >
@@ -284,6 +283,7 @@ function ScheduleTalk({ title, speakers, track, size, proposalLink, isLive }) {
284
283
function ScheduleAccordion ( {
285
284
date,
286
285
currentSchedule,
286
+ defaultScheduleIndex,
287
287
id,
288
288
handleTabClick,
289
289
isLive,
@@ -296,58 +296,59 @@ function ScheduleAccordion({
296
296
const handleCloseSpeakerModal = ( ) => {
297
297
setSelectedSpeakerId ( null ) ;
298
298
} ;
299
+
299
300
return (
300
- < Accordion . Item eventKey = { `${ id } ` } onClick = { ( ) => handleTabClick ( id ) } >
301
- < Accordion . Header > { date } </ Accordion . Header >
302
- < Accordion . Body style = { { padding : "1rem 0rem" } } >
303
- { currentSchedule . schedule . map ( ( scheduleItem , scheduleIdx ) => {
304
- const isLive = isEventLive ( scheduleItem . time ) ;
305
- return scheduleItem . talks . map ( ( talk , idx ) => {
306
- return (
307
- < Card
308
- style = { { margin : "0.8rem 0" } }
309
- key = { `${ date } -${ scheduleIdx } -${ idx } ` }
310
- >
311
- { talk . title . indexOf ( "Keynote" ) > - 1 && (
312
- < Card . Header className = "bg-warning" > Keynote</ Card . Header >
313
- ) }
314
- < Card . Body >
315
- < Card . Subtitle className = "mb-4" >
316
- { scheduleItem . time }
317
- { isLive && (
318
- < Badge bg = "danger" className = "float-end p-2" >
319
- < span style = { { color : "#fff" } } >
320
- Live
321
- < span className = "live-icon" > </ span >
322
- </ span >
323
- </ Badge >
324
- ) }
325
- </ Card . Subtitle >
326
- < Card . Title className = "mb-2" >
327
- { talk . proposalLink ? (
328
- < Link
329
- className = "text-decoration-none text-black"
330
- href = { talk . proposalLink }
331
- target = "_blank"
332
- rel = "noopener noreferrer"
333
- >
334
- { talk . title }
335
- </ Link >
336
- ) : (
337
- < > { talk . title } </ >
338
- ) }
339
- </ Card . Title >
340
- { talk . track && (
341
- < Stack >
342
- < Badge
343
- bg = "success"
344
- tabIndex = { 0 }
345
- style = { { fontSize : "1rem" } }
346
- >
347
- { getTrackRoom ( talk . track ) }
348
- </ Badge >
349
- </ Stack >
301
+ < Accordion . Item eventKey = { `${ id } ` } onClick = { ( ) => handleTabClick ( id ) } >
302
+ < Accordion . Header > { date } </ Accordion . Header >
303
+ < Accordion . Body style = { { padding : "1rem 0rem" } } >
304
+ { currentSchedule . schedule . map ( ( scheduleItem , scheduleIdx ) => {
305
+ const isLive = ( defaultScheduleIndex == id && isEventLive ( scheduleItem . time ) ) ;
306
+ return scheduleItem . talks . map ( ( talk , idx ) => {
307
+ return (
308
+ < Card
309
+ style = { { margin : "0.8rem 0" } }
310
+ key = { `${ date } -${ scheduleIdx } -${ idx } ` }
311
+ >
312
+ { talk . title . indexOf ( "Keynote" ) > - 1 && (
313
+ < Card . Header className = "bg-warning" > Keynote</ Card . Header >
314
+ ) }
315
+ < Card . Body >
316
+ < Card . Subtitle className = "mb-4" >
317
+ { scheduleItem . time }
318
+ { isLive && (
319
+ < Badge bg = "danger" className = "float-end p-2" >
320
+ < span style = { { color : "#fff" } } >
321
+ Live
322
+ < span className = "live-icon" > </ span >
323
+ </ span >
324
+ </ Badge >
325
+ ) }
326
+ </ Card . Subtitle >
327
+ < Card . Title className = "mb-2" >
328
+ { talk . proposalLink ? (
329
+ < Link
330
+ className = "text-decoration-none text-black"
331
+ href = { talk . proposalLink }
332
+ target = "_blank"
333
+ rel = "noopener noreferrer"
334
+ >
335
+ { talk . title }
336
+ </ Link >
337
+ ) : (
338
+ < > { talk . title } </ >
350
339
) }
340
+ </ Card . Title >
341
+ { talk . track && (
342
+ < Stack >
343
+ < Badge
344
+ bg = "success"
345
+ tabIndex = { 0 }
346
+ style = { { fontSize : "1rem" } }
347
+ >
348
+ { getTrackRoom ( talk . track ) }
349
+ </ Badge >
350
+ </ Stack >
351
+ ) }
351
352
< Card . Body className = "pt-1 ps-0" >
352
353
{ /* {talk.speakersPlaceHolder ? (
353
354
<span>By {talk.speakersPlaceHolder}</span>
0 commit comments