Each card now shows the title and duration on the top row, a single-line description preview below it (truncated with line-clamp-1 if it's long), and the location with a map pin icon at the bottom. Still compact and minimal -- just two extra lines of info per card.
Swapped out Google Meet, Zoom, and In Person for sample street addresses on each card. Everything else stays the same.
The code returns the following error:
Uncaught Error: Hydration failed because the server rendered text didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:
- A server/client branch `if (typeof window !== 'undefined')`.
- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.
- Date formatting in a user's locale which doesn't match the server.
- External changing data without sending a snapshot of it along with the HTML.
- Invalid HTML tag nesting.
It can also happen if the client has a browser extension installed which messes with the HTML before React loaded.
https://react.dev/link/hydration-mismatch
...
<RedirectBoundary>
<RedirectErrorBoundary router={{...}}>
<InnerLayoutRouter url="/" tree={[...]} params={{}} cacheNode={{rsc:<Fragment>, ...}} segmentPath={[...]} ...>
<SegmentViewNode type="page" pagePath="page.tsx">
<SegmentTrieNode>
<ClientPageRoot Component={function Page} serverProvidedParams={{...}}>
<Page params={Promise} searchParams={Promise}>
<div className="flex min-h...">
<main className="w-full max...">
<div className="flex flex-..." role="list" aria-label="Event types">
<div role="listitem">
<EventTypeCard title="Quick Call" duration="15 min" location="Google Meet" ...>
<button onClick={function onSelect} className="flex w-ful...">
<div>
<p>
<span className="flex items...">
<MapPin>
+ Google Meet
- 123 Main St, Suite 200
...
...
...
at <unknown> (https://react.dev/link/hydration-mismatch)
at span (<anonymous>)
at EventTypeCard (components/event-type-card.tsx:33:7)
at <unknown> (app/page.tsx:39:15)
at Array.map (<anonymous>)
at Page (app/page.tsx:37:23)
31 | </div>
32 | <p className="line-clamp-1 text-xs leading-relaxed text-muted-foreground">{description}</p>
> 33 | <span className="flex items-center gap-1.5 text-xs text-muted-foreground">
| ^
34 | <MapPin className="h-3 w-3 shrink-0" aria-hidden="true" />
35 | {location}
36 | </span>
Revise the code to address the error.
I was previewing: /
You can send messages while the preview loads