--- import type { Event, EventPageEntry } from "../data/events"; import { getEventBasePath, getEventOverviewSectionIndex, getEventPageEntries, } from "../data/events"; import EventSchedule from "./EventSchedule.astro"; import { getEventNavItems } from "../data/eventNav"; import SiteLayout from "../layouts/SiteLayout.astro"; type Props = { event: Event; pageEntry?: EventPageEntry; }; const { event } = Astro.props; const eventPages = getEventPageEntries(event); const pageEntry = Astro.props.pageEntry ?? eventPages[0]; const theme = event.theme ?? "default"; const basePath = getEventBasePath(event); const overviewSectionIndex = getEventOverviewSectionIndex(event); const overviewSection = typeof overviewSectionIndex === "number" ? event.sections?.[overviewSectionIndex] : undefined; const overviewSections = overviewSection ? [overviewSection] : []; const currentSection = pageEntry.type === "section" && typeof pageEntry.sectionIndex === "number" ? event.sections?.[pageEntry.sectionIndex] : undefined; const schedulePage = eventPages.find((page) => page.type === "schedule"); const eventTitle = event.shortTitle ?? event.title; const isOverview = pageEntry.type === "overview"; const pageTitle = isOverview ? eventTitle : `${pageEntry.label} - ${eventTitle}`; const pageContext = `${event.kind} / ${event.year}`; const navItems = getEventNavItems(event); const showOverviewContent = event.showOverviewContent !== false; const showScheduleBlock = Boolean( event.schedule && (pageEntry.type === "schedule" || (isOverview && event.showScheduleOnOverview)), ); const shouldRenderBody = !isOverview || showOverviewContent || showScheduleBlock; const shouldUseWideBody = Boolean(isOverview && event.showScheduleOnOverview); const scheduleAsTabs = showScheduleBlock && event.scheduleDisplay === "tabs" && (event.schedule?.length ?? 0) > 1; const showHeroScheduleLink = Boolean( schedulePage && !event.showScheduleOnOverview && event.showScheduleLinkInHero !== false, ); const hasHeroActions = Boolean(event.sourceUrl || showHeroScheduleLink); --- {isOverview ? (

{event.kind} / {event.year}

{event.title}

{event.subtitle &&

{event.subtitle}

}

{event.summary}

{hasHeroActions && (
{event.sourceUrl && Event website} {showHeroScheduleLink && schedulePage && Schedule}
)}
) : (

{pageContext}

{pageEntry.label}

)} {shouldRenderBody && (
{showScheduleBlock && event.schedule && ( )} {isOverview && showOverviewContent && event.links && ( event.slug === "ncert" ? ( ) : ( ) )} {isOverview && showOverviewContent && overviewSections.map((section) => (
{section.eyebrow &&

{section.eyebrow}

}

{section.title}

{section.body?.map((paragraph) =>

{paragraph}

)} {section.numbered && (
    {section.numbered.map((item) =>
  1. {item}
  2. )}
)} {section.bullets && (
    {section.bullets.map((bullet) =>
  • {bullet}
  • )}
)} {section.links && ( )} {section.entries && (
{section.entries.map((entry) => (
{entry.meta &&

{entry.meta}

}

{entry.title}

{entry.body.map((paragraph) =>

{paragraph}

)} {entry.bullets && (
    {entry.bullets.map((bullet) =>
  • {bullet}
  • )}
)}
))}
)} {section.table && (
{section.table.headers.map((header) => )} {section.table.rows.map((row) => ( {row.map((cell) => )} ))}
{header}
{cell}
)} {section.tables?.map((table) => (
{table.headers.map((header) => )} {table.rows.map((row) => ( {row.map((cell) => )} ))}
{header}
{cell}
))}
))} {isOverview && showOverviewContent && !overviewSection && (

Overview

{event.summary}

)} {pageEntry.type === "section" && currentSection && (
{currentSection.eyebrow &&

{currentSection.eyebrow}

}

{currentSection.title}

{currentSection.body?.map((paragraph) =>

{paragraph}

)} {currentSection.numbered && (
    {currentSection.numbered.map((item) =>
  1. {item}
  2. )}
)} {currentSection.bullets && (
    {currentSection.bullets.map((bullet) =>
  • {bullet}
  • )}
)} {currentSection.links && ( )} {currentSection.entries && (
{currentSection.entries.map((entry) => (
{entry.meta &&

{entry.meta}

}

{entry.title}

{entry.body.map((paragraph) =>

{paragraph}

)} {entry.bullets && (
    {entry.bullets.map((bullet) =>
  • {bullet}
  • )}
)}
))}
)} {currentSection.table && (
{currentSection.table.headers.map((header) => )} {currentSection.table.rows.map((row) => ( {row.map((cell) => )} ))}
{header}
{cell}
)} {currentSection.tables?.map((table) => (
{table.headers.map((header) => )} {table.rows.map((row) => ( {row.map((cell) => )} ))}
{header}
{cell}
))}
)} {pageEntry.type === "visual" && (

Visual Material

{event.gallery ? ( ) : event.image && ( {event.image.alt} )}
)} {pageEntry.type === "people" && event.people && (

Participants

    {event.people.map((person) =>
  • {person}
  • )}
)}
)}