Skip to content

Commit 471d237

Browse files
authored
Highlight keynote in schedule (#126)
2 parents 0d14ce4 + a15d532 commit 471d237

2 files changed

Lines changed: 51 additions & 35 deletions

File tree

data/schedule.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export const SCHEDULE = {
3737
],
3838
[
3939
{
40-
title: 'Keynote: When will AI take my job and what can I do about it',
40+
title: 'When will AI take my job and what can I do about it',
4141
type: 'Talk',
4242
keynote: true,
4343
time: '09:25 - 10:15 AM',
@@ -136,7 +136,7 @@ export const SCHEDULE = {
136136
],
137137
[
138138
{
139-
title: 'Keynote: Open Source: One Idea, Many Journeys',
139+
title: 'Open Source: One Idea, Many Journeys',
140140
keynote: true,
141141
time: '03:55 - 04:45 PM',
142142
speakers: [getSpeaker('bowrna-prabhakaran')],

src/app/schedule/page.jsx

Lines changed: 49 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,18 @@ const LocationBadge = ({ location, className = '' }) => {
3131
);
3232
};
3333

34+
const KeynoteBadge = ({ className = '' }) => {
35+
return (
36+
<div
37+
className={`inline-flex justify-center items-center py-2 bg-secondary-600 dark:bg-secondary-700 text-gray-50 ${className}`}
38+
>
39+
<Span className="font-semibold" level={4}>
40+
KEYNOTE
41+
</Span>
42+
</div>
43+
);
44+
};
45+
3446
const SpeakerCard = ({ speaker }) => {
3547
return (
3648
<div className="flex flex-row items-center my-1">
@@ -76,45 +88,49 @@ const ScheduleItem = ({
7688
}) => {
7789
const getBGColor = () => {
7890
if (isKeynote) {
79-
return 'bg-primary-200 dark:bg-primary-800';
91+
return 'bg-gray-50 dark:bg-gray-900 border-secondary-600 dark:border-secondary-700 border-x-4 border-b-4';
8092
}
8193
if (isBreak) {
82-
return 'border-secondary-500 dark:border-secondary-500 dark:bg-gray-700';
94+
return 'bg-gray-50 dark:bg-gray-900 border-secondary-600 border-l-4';
8395
}
96+
return 'bg-gray-50 dark:bg-gray-900 border-primary-600 dark:border-primary-400 border-l-4';
8497
};
8598
return (
8699
<article
87100
tabIndex="0"
88-
className={`w-full focus:outline-none focus:ring-2 focus:ring-primary-600 flex flex-col md:p-6 p-4 mb-6 border-l-4 border-primary-600 dark:border-primary-400 dark:bg-gray-900 shadow-md rounded-sm transition-transform transform hover:scale-[1.02] ${getBGColor()}`}
101+
className={`w-full focus:outline-none focus:ring-2 focus:ring-primary-600 flex flex-col mb-6 shadow-md rounded-sm transition-transform transform hover:scale-[1.02] ${getBGColor()}`}
89102
>
90-
<header className="flex flex-wrap justify-between items-center mb-4 gap-2">
91-
<TimeBadge time={time} />
92-
<LocationBadge location={location} />
93-
</header>
94-
<Heading
95-
level={4}
96-
tagLevel={3}
97-
className="text-gray-800 dark:text-gray-200 mb-3 font-semibold"
98-
>
99-
{title}
100-
</Heading>
101-
<div className="flex flex-col">
102-
{speakers &&
103-
speakers.map((speaker, index) =>
104-
speaker.activeSpeakerPage ? (
105-
<Link
106-
href={`/speakers/${speaker.slug}`}
107-
target="_self"
108-
className="flex flex-col space-y-2 my-1"
109-
key={index}
110-
title={`Hyperlink to Speaker Details of ${speaker.name}`}
111-
>
103+
{isKeynote && <KeynoteBadge className="" />}
104+
<div className="md:p-6 p-4">
105+
<header className="flex flex-wrap justify-between items-center mb-4 gap-2">
106+
<TimeBadge time={time} />
107+
<LocationBadge location={location} />
108+
</header>
109+
<Heading
110+
level={4}
111+
tagLevel={3}
112+
className="text-gray-800 dark:text-gray-200 mb-3 font-semibold"
113+
>
114+
{title}
115+
</Heading>
116+
<div className="flex flex-col">
117+
{speakers &&
118+
speakers.map((speaker, index) =>
119+
speaker.activeSpeakerPage ? (
120+
<Link
121+
href={`/speakers/${speaker.slug}`}
122+
target="_self"
123+
className="flex flex-col space-y-2 my-1"
124+
key={index}
125+
title={`Hyperlink to Speaker Details of ${speaker.name}`}
126+
>
127+
<SpeakerCard key={index} speaker={speaker} />
128+
</Link>
129+
) : (
112130
<SpeakerCard key={index} speaker={speaker} />
113-
</Link>
114-
) : (
115-
<SpeakerCard key={index} speaker={speaker} />
116-
)
117-
)}
131+
)
132+
)}
133+
</div>
118134
</div>
119135
</article>
120136
);
@@ -131,10 +147,10 @@ const Schedule = () => {
131147
<button
132148
key={day}
133149
onClick={() => setActiveDay(day)}
134-
className={`flex flex-col items-center px-6 md:px-12 py-2 border border-secondary-800 rounded-xl ${
150+
className={`flex flex-col items-center px-6 md:px-12 py-2 border border-secondary-800 focus:ring-2 shadow-md rounded-xl ${
135151
activeDay === day
136-
? 'bg-secondary-600 dark:bg-secondary-700 text-gray-50 dark:text-gray-50'
137-
: 'text-gray-950 dark:text-gray-50'
152+
? 'bg-secondary-600 dark:bg-secondary-700 text-gray-50 dark:text-gray-50'
153+
: 'bg-gray-50 dark:bg-gray-900 text-gray-950 dark:text-gray-50'
138154
}`}
139155
>
140156
<Heading tagLevel={2} level={5}>

0 commit comments

Comments
 (0)