diff --git a/package-lock.json b/package-lock.json index 1bc6d3c..f6ec5d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1656,6 +1656,7 @@ "resolved": "https://registry.npmjs.org/astro/-/astro-5.15.9.tgz", "integrity": "sha512-XLDXxu0282cC/oYHswWZm3johGlRvk9rLRS7pWVWSne+HsZe9JgrpHI+vewAJSSNHBGd1aCyaQOElT5RNGe7IQ==", "license": "MIT", + "peer": true, "dependencies": { "@astrojs/compiler": "^2.13.0", "@astrojs/internal-helpers": "0.7.5", @@ -4046,6 +4047,7 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.2.tgz", "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -4681,6 +4683,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -4879,6 +4882,7 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/components/Schedule.astro b/src/components/Schedule.astro new file mode 100644 index 0000000..e48b543 --- /dev/null +++ b/src/components/Schedule.astro @@ -0,0 +1,160 @@ +--- +// import type { CitySchedule } from "../lib/cityContent" + +// interface Props { +// props: CitySchedule[] +// } + +// const { props } = Astro.props; +import { cityContent } from "../lib/cityContent" +--- + + + Schedule + + {cityContent.vancouver.schedule.map((event) => { + return + {event.endTime ? ( + {event.startTime} - {event.endTime} + ) : ( + {event.startTime} + )} + + {event.activities.map((activity, idx) => ( + + {activity.trim()} + + ))} + + + })} + + + + + + diff --git a/src/lib/cityContent.ts b/src/lib/cityContent.ts index c86f0c8..4f46221 100644 --- a/src/lib/cityContent.ts +++ b/src/lib/cityContent.ts @@ -1,5 +1,11 @@ export type City = 'vancouver' | 'toronto'; +export interface CitySchedule { + startTime: string; + endTime?: string; + activities: string[] +} + export interface CityContent { name: string; displayName: string; @@ -8,6 +14,7 @@ export interface CityContent { description: string; venue?: string; date?: string; + schedule?: CitySchedule[] } export const cityContent: Record = { @@ -19,6 +26,61 @@ export const cityContent: Record = { description: 'Connect with over 1,000 cloud professionals and decision-makers. Showcase your brand at this premier gathering of AWS, Azure, Google Cloud, and IBM Cloud experts.', venue: 'Science World', date: 'Friday, May 1st, 2026 • 2pm-9pm', + schedule: [ + { + startTime: "3:00 PM", + activities: ["Doors Open"] + }, + { + startTime: "3:00 PM", + activities: ["Community Experience sponsored by AWS opens"] + }, + { + startTime: "3:20 PM", + endTime: "3:30 PM", + activities: ["Opening Welcome Remarks", "Community Stage, streamed to Main Stage"] + }, + { + startTime: "3:30 PM", + endTime: "4:00 PM", + activities: ["Main Stage Session 1", " Community Stage Session 1"] + }, + { + startTime: "4:00 PM", + endTime: "4:30 PM", + activities: ["Main Stage Session 2", "Community Stage Session 2"] + }, + { + startTime: "4:30 PM", + endTime: "5:00 PM", + activities: ["Main Stage Session 3", "Community Stage HackerRivals Round 1"] + }, + { + startTime: "5:00 PM", + endTime: "5:30 PM", + activities: ["Main Stage Session 4", "Community Stage Session 3"] + }, + { + startTime: "5:30 PM", + endTime: "6:00 PM", + activities: ["Main Stage Session 5", "Community Stage HackerRivals Elimination Round"] + }, + { + startTime: "6:00 PM", + endTime: "6:30 PM", + activities: ["Main Stage Session 6", "Community Stage Session 4"] + }, + { + startTime: "6:30 PM", + endTime: "7:00 PM", + activities: ["HackerRivals Final", " Live on the Community Stage, streamed to the Main Stage"] + }, + { + startTime: "7:00 PM", + endTime: "7:30 PM", + activities: ["HackerRivals Awards", "Closing Remarks", "Live on the Community Stage, streamed to the Main Stage"] + } + ] }, toronto: { name: 'toronto', diff --git a/src/pages/index.astro b/src/pages/index.astro index 269654e..86f5b4c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -15,7 +15,8 @@ import Newsletter from '../components/Newsletter.astro'; import Footer from '../components/Footer.astro'; import SeeYouThere from '../components/SeeYouThere.astro'; import ScrollAnimations from '../components/ScrollAnimations.astro'; -import { heroContent, navigationContent, aboutCPCAContent, whatIsCloudSummitContent, cloudSummitActivitiesContent, eventHighlightsContent, tickerContent, eventMapContent, pastSponsorsContent, newsletterContent, footerContent, defaultCity } from '../lib/content'; +import { heroContent, navigationContent, aboutCPCAContent, whatIsCloudSummitContent, cloudSummitActivitiesContent, eventHighlightsContent, tickerContent, pastSponsorsContent, newsletterContent, footerContent, defaultCity } from '../lib/content'; +import Schedule from '../components/Schedule.astro'; // Use default city for SSR, will be updated client-side const content = heroContent[defaultCity]; @@ -102,6 +103,7 @@ const torontoDescription = +
{event.startTime} - {event.endTime}
{event.startTime}
+ {activity.trim()} +