Store
Product details panel
Price, host, dates and the call to action on a product page.
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.
Product details panel
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.
| Prop | Type | Default | Description |
|---|---|---|---|
product* | Product | — | Undocumented — add TSDoc to the prop in the library. |
host | ProductHost | DEFAULT_PRODUCT_HOST | The space hosting it. Defaults to a prototype BTS space. |
viewerMode | ProductViewerMode | "member" | Who is looking. `"unauthenticated"` routes the CTA to the join intent. |
paymentsNotSetUp | boolean | false | The space has no payment method configured. The app derived this from `activeSpace.id === "flavor-studio"`, a hard-coded space id. |
onCTAClick | (payload: { intent: ProductCTAIntent; item: ProductCheckoutItem | null }) => void | — | The CTA was pressed. `item` is present only when the product is priced and would have gone to checkout. |
ctaLabel | string | — | Override the CTA copy. |
currencySymbol | string | "$" | Currency prefix. AUD by default. |
locale | string | "en-US" | Locale for the event date line. |
zoomIconSrc | string | VIRTUAL_MEETING_ICON | Icon shown for a Zoom-flavoured virtual location. |
googleMeetIconSrc | string | MEET_MEETING_ICON | Icon shown for a Google Meet-flavoured virtual location. |
className | string | — | 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/ProductDetailsPanel.tsx- Portability
- Needs its app dependencies replaced by props before it renders in isolation.
- Notes
- Its CTA label and date formatters are exported so a story can pin them.