Skip to content

Store editor

Event details section

Date, time, repeat and location for an event product.
Available
Needs mock props

Examples

Rendered live from the maintained Storybook story. Lantern stores only the story id and embeds Storybook rather than duplicating the component or its demo.

Event details section

Rendered live from Storybook

Storybook must be running for this to load — bun run start:storybook from the monorepo root, or set NEXT_PUBLIC_STORYBOOK_URL to a deployed instance.

Props

The component's public API, read from its TypeScript source. Descriptions come from TSDoc on the prop, so this table cannot drift from the component.

PropTypeDefaultDescription
eventDate*string—`yyyy-MM-dd`.
onEventDateChange*(date: string) => void—Undocumented — add TSDoc to the prop in the library.
eventTime*string—`HH:mm`, 24-hour.
onEventTimeChange*(time: string) => void—Undocumented — add TSDoc to the prop in the library.
eventEndDatestring""Undocumented — add TSDoc to the prop in the library.
onEventEndDateChange(date: string) => void—Undocumented — add TSDoc to the prop in the library.
eventEndTimestring""Undocumented — add TSDoc to the prop in the library.
onEventEndTimeChange(time: string) => void—Undocumented — add TSDoc to the prop in the library.
repeatOptionRepeatOption"none"Undocumented — add TSDoc to the prop in the library.
onRepeatOptionChange(option: RepeatOption) => void—Undocumented — add TSDoc to the prop in the library.
locationTypeLocationType""Undocumented — add TSDoc to the prop in the library.
onLocationTypeChange(type: LocationType) => void—Undocumented — add TSDoc to the prop in the library.
locationValuestring""Undocumented — add TSDoc to the prop in the library.
onLocationValueChange(value: string) => void—Undocumented — add TSDoc to the prop in the library.
allDayboolean—Controlled all-day flag. Leave undefined to let the section own it.
initialAllDaybooleanfalseSeeds the all-day flag when uncontrolled, so both trees are snapshottable.
onAllDayChange(allDay: boolean) => void—Undocumented — add TSDoc to the prop in the library.
zoomInstalledbooleanfalseWhether the Zoom integration is connected. The app read this from an installed-apps context; it is a prop here.
onInstallZoom() => void—Fired by the "Install Zoom" button. The app raised an install toast.
isInstallingZoombooleanfalseRenders the install button in its spinner state.
isGeneratingZoomLinkbooleanfalseRenders the meeting-link field in its "Generating meeting link..." state. The app faked this with `Math.random()` behind an 1100ms timer; link generation is the host's job now, and this is how it reports progress.
onRequestZoomLink() => void—Fired once when Zoom is selected, connected, and no link exists yet — the host's cue to mint one and push it back through `onLocationValueChange`.
zoomIconSrcstringPLACEHOLDER_VIDEO_APP_ICONIcon for the Zoom row. Defaults to an inline SVG; never a remote URL.
installedBadgeLabelstring"Installed"Copy on the "connected" pill in the Zoom row.
initialCopiedbooleanfalseSeeds the copy button's confirmation tick so it is a static story.
onCopyLink(value: string) => void—Overrides the clipboard write. Defaults to `navigator.clipboard.writeText`.
copyResetMsnumber1500How long the tick stays up after a copy. `0` leaves it up indefinitely.
nowDateEVENT_DETAILS_DEFAULT_NOWReference "now" for `autoInitializeSchedule`. Fixed by default — this component never reads the machine clock on its own.
autoInitializeSchedulebooleanfalseSeed an empty date/time on mount (today, the next half hour, and a one-hour end). The app always did this; it is opt-in here, because a section that writes to its host on mount is a surprise in a design system.
mirrorEndDatebooleantrueKeep the end date pinned to the start date — the app's single-day row.
timeStepMinutesnumber30Minutes between rows in the time lists.
defaultOpenControlEventDetailsOpenControl—Opens one of the dropdowns on mount so each menu is a static story.
classNamestring—Undocumented — add TSDoc to the prop in the library.

Reference

Transcribed from the component audit. If this disagrees with the source, the source is right.

Source
src/components/store/editor/sections/EventDetailsSection.tsx
Portability
Needs its app dependencies replaced by props before it renders in isolation.
Notes
Takes a now value; its 24-hour option builder is exported.