diff --git a/components/Agenda/agenda.js b/components/Agenda/agenda.js index 4fffeed9..2ae4d14c 100644 --- a/components/Agenda/agenda.js +++ b/components/Agenda/agenda.js @@ -2,20 +2,63 @@ import React from 'react' import Heading from '../Typography/heading' import Paragraph from '../Typography/paragraph' -function Agenda() { +function Agenda({ city }) { + console.log(city) return ( -
- +
+
+ Agenda - + The conference will commence at 8:00am BST (UTC+1) - -
+ + {!city.agenda &&
Agendas Coming Soon - Stay Tuned! -
+
} +
+ {city.agenda &&
+ + {city.date} + +
+ {city.agenda.map((talk) => { + return
+ + {talk.time} + +
+
+ + {talk.type} + + + {talk.session} + +
+ {talk.speaker && typeof talk.speaker === 'number' ?
+
+ {city.speakers[talk.speaker +
+
+ + {city.speakers[talk.speaker-1].name} + + + {city.speakers[talk.speaker-1].title} + +
+
:
} +
+
+ })} +
+
}
); } diff --git a/components/Speaker/speaker.js b/components/Speaker/speaker.js index 6be70b3f..6fc87f91 100644 --- a/components/Speaker/speaker.js +++ b/components/Speaker/speaker.js @@ -3,13 +3,13 @@ import React from 'react' function Speaker({details, location, className}) { return (
-
+
{details.name}
diff --git a/config/speakers.json b/config/speakers.json index b1cfec14..2012d7e0 100644 --- a/config/speakers.json +++ b/config/speakers.json @@ -38,6 +38,102 @@ { "location": "London, United Kingdom", "city": "London", + "agenda": [ + { + "time": "9:00 AM BST - 10:00 AM BST", + "type": "Registration + Breakfast" + }, + { + "time": "10:00 AM BST - 10:30 AM BST", + "session": "Everything You Wish To Know About The AsyncAPI Community", + "speaker": 10, + "type": "Keynote Speaker" + }, + { + "time": "10:30 AM BST - 11:00 AM BST", + "session": "Simplifying The Message-Based API Ecosystem Using Async API", + "speaker": 12, + "type": "Technical Talk" + }, + { + "time": "11:00 AM BST - 11:30 AM BST", + "session": "Open Standards For Building Event-Driven Applications In The Cloud", + "speaker": 5, + "type": "Technical Talk" + }, + { + "time": "11:30 AM BST - 12:00 PM BST", + "session": "AsyncAPI Standards And Governance", + "speaker": 6, + "type": "Keynote Speaker" + }, + { + "time": "12:00 PM BST - 12:30 PM BST", + "session": "Event & Unified API Management - Self-Service Access To Events Using AsyncAPI", + "speaker": 8, + "type": "Keynote Speaker" + }, + { + "time": "12:30 PM BST - 1:30 PM BST", + "session": "", + "type": "Break" + }, + { + "time": "1:30 PM BST - 2:00 PM BST", + "session": "Full-Stack AsyncAPI", + "speaker": 4, + "type": "Technical Talk" + }, + { + "time": "2:00 PM BST - 2:30 PM BST", + "session": "AsyncAPI and The Battles It Must Win", + "speaker": 9, + "type": "Keynote Speaker" + }, + { + "time": "2:30 PM BST - 3:00 PM BST", + "session": "API Management For An Asynchronous World", + "speaker": 1, + "type": "Technical Talk" + }, + { + "time": "3:00 PM BST - 3:20 PM BST", + "session": "", + "type": "Break" + }, + { + "time": "3:20 PM BST - 3:50 PM BST", + "session": "AsyncAPI v3: Unleashing the Power of Asynchronous APIs Design", + "speaker": 3, + "type": "Keynote Speaker" + }, + { + "time": "3:50 PM BST - 4:25 PM BST", + "session": "Navigating AsyncAPI Design with APIOps Cycles: A Practical Approach to Collaborative Planning", + "speaker": 2, + "type": "Technical Talk" + }, + { + "time": "4:25 PM BST - 4:55 PM BST", + "session": "AsyncAPI and Modelina: Enforce Contracts And Reduce Boilerplate", + "speaker": 7, + "type": "Technical Talk" + }, + { + "time": "4:55 PM BST - 5:30 PM BST", + "session": "Bridging the Gap between Design and Runtime in EDA with AsyncAPI and CI/CD", + "speaker": 11, + "type": "Technical Talk" + }, + { + "time": "5:30 PM BST - 5:35 PM BST", + "session": "Inside-out or Outside-in", + "speaker": 1, + "type": "Keynote Speaker" + } + + + ], "lists": [ { diff --git a/pages/venue/[id].js b/pages/venue/[id].js index b034547d..0f629ddf 100644 --- a/pages/venue/[id].js +++ b/pages/venue/[id].js @@ -29,6 +29,7 @@ export async function getStaticProps({ params }) { res = data[0]; const getSpeakers = speakers.filter((s) => s.city === res?.name); res.speakers = getSpeakers[0].lists; + res.agenda = getSpeakers[0].agenda || null; return { props: { city: res, @@ -105,7 +106,7 @@ function Venue({ city }) { className='border border border-x-0 border-b-0 border-t-[#333] py-28 container flex flex-col justify-center items-center ' >
- +