Skip to content

Commit eed3e20

Browse files
authoredSep 30, 2023
Live fix (#254)
1 parent c297a72 commit eed3e20

File tree

2 files changed

+64
-64
lines changed

2 files changed

+64
-64
lines changed
 

‎components/schedule.js

+60-59
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ const getTrackRoom = (num) => {
3636
};
3737

3838
const ConferenceSchedule = () => {
39-
const [selectedTab, setSelectedTab] = useState(1);
39+
const defaultScheduleIndex = 1
40+
const [selectedTab, setSelectedTab] = useState(defaultScheduleIndex);
4041

4142
const handleTabClick = (index) => {
4243
setSelectedTab(index);
@@ -82,9 +83,8 @@ const ConferenceSchedule = () => {
8283
{ScheduleData.map((item, index) => (
8384
<li className="nav-item" role="presentation" key={index}>
8485
<button
85-
className={`nav-link ${
86-
index === selectedTab ? "active" : "nav-link-inactive"
87-
}`}
86+
className={`nav-link ${index === selectedTab ? "active" : "nav-link-inactive"
87+
}`}
8888
id={`pills-tab-${index}`}
8989
data-bs-toggle="pill"
9090
data-bs-target={`#pills-${index}`}
@@ -111,7 +111,7 @@ const ConferenceSchedule = () => {
111111
>
112112
<div className="row">
113113
{currentSchedule.schedule.map((scheduleItem, idx) => {
114-
const isLive = isEventLive(scheduleItem.time);
114+
const isLive = (selectedTab == defaultScheduleIndex && isEventLive(scheduleItem.time));
115115
return (
116116
<ScheduleCard
117117
isLive={isLive}
@@ -126,13 +126,13 @@ const ConferenceSchedule = () => {
126126
</div>
127127
</div>
128128
{/* Mobile Accordion */}
129-
130129
<Accordion defaultActiveKey={["1"]} className="d-block d-lg-none">
131130
{ScheduleData.map((item, idx) => {
132131
return (
133132
<ScheduleAccordion
134133
key={idx}
135134
id={idx}
135+
defaultScheduleIndex={defaultScheduleIndex}
136136
currentSchedule={currentSchedule}
137137
handleTabClick={() => handleTabClick(idx)}
138138
{...item}
@@ -188,9 +188,8 @@ function ScheduleTalk({ title, speakers, track, size, proposalLink, isLive }) {
188188
return (
189189
<>
190190
<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+
}`}
194193
style={{ marginBottom: "0.8rem" }}
195194
>
196195
<div className="col-4">
@@ -284,6 +283,7 @@ function ScheduleTalk({ title, speakers, track, size, proposalLink, isLive }) {
284283
function ScheduleAccordion({
285284
date,
286285
currentSchedule,
286+
defaultScheduleIndex,
287287
id,
288288
handleTabClick,
289289
isLive,
@@ -296,58 +296,59 @@ function ScheduleAccordion({
296296
const handleCloseSpeakerModal = () => {
297297
setSelectedSpeakerId(null);
298298
};
299+
299300
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}</>
350339
)}
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+
)}
351352
<Card.Body className="pt-1 ps-0">
352353
{/* {talk.speakersPlaceHolder ? (
353354
<span>By {talk.speakersPlaceHolder}</span>

‎lib/util.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import moment from 'moment-timezone';
22

33
function isTimeBetween(startTimeStr, endTimeStr) {
4-
const currentTime = moment().tz('Asia/Kolkata');
5-
6-
const startTime = moment(startTimeStr, 'hA').tz('Asia/Kolkata');
7-
const endTime = moment(endTimeStr, 'hA').tz('Asia/Kolkata');
4+
const currentTime = moment();
5+
const startTime = moment(startTimeStr, 'hh:mm AA');
6+
const endTime = moment(endTimeStr, 'hh:mm AA');
87

98
return currentTime.isBetween(startTime, endTime);
109
}
1110

1211
module.exports = {
1312
isTimeBetween,
14-
};
13+
};

0 commit comments

Comments
 (0)
Please sign in to comment.