Repository navigation
Conversation
The page title took its label from state that `Profile.Nav` set in a layout effect, so server-rendered HTML carried an empty heading until hydration. `Profile.Root` now reads the nav's children from its own children during render, so the title is in the first render and the SSR output. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 23ddacb The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (10)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 6 reviews per hour. 📝 WalkthroughWalkthrough
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to The profile heading change is ready to merge after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 8 files. (2 skipped: 2 unsupported.)
Comment |
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/electron
@clerk/electron-passkeys
@clerk/eslint-plugin
@clerk/expo
@clerk/expo-biometrics
@clerk/expo-google-signin
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/hono
@clerk/localizations
@clerk/mosaic
@clerk/nextjs
@clerk/nuxt
@clerk/react
@clerk/react-router
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/ui
@clerk/upgrade
@clerk/vue
commit: |
| function navItemsOf(children: React.ReactNode): React.ReactNode { | ||
| for (const child of React.Children.toArray(children)) { | ||
| if (!React.isValidElement<{ children?: React.ReactNode }>(child)) { | ||
| continue; | ||
| } | ||
| if (child.type === Nav) { | ||
| return child.props.children; | ||
| } | ||
| if (child.type === React.Fragment) { | ||
| const items = navItemsOf(child.props.children); | ||
| if (items !== null) { | ||
| return items; | ||
| } | ||
| } | ||
| } | ||
| return null; | ||
| } | ||
|
|
There was a problem hiding this comment.
could we remove the need for computing this with just a little more data orchestration?
`Profile.Content` takes the selected page's name as `pageTitle` instead of `Profile.Root` walking its children for the nav items. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Description
The profile's page title (
Profile.Content's heading, naming the selected page) was empty in server-rendered HTML and only appeared once the client hydrated.Profile.Navhanded its items to the title through context state set in a layout effect, so the first render, and the SSR output with it, had no label.Profile.Contentnow takes the selected page's name as a requiredpageTitleprop and renders it as the page title, so the heading has its label on the first render and the server emits it.Profile.Navstill renders its items as the tablist and the compact select's options.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code