Repository navigation
feat!: drop the Next.js dependency with LumyxLinkProvider - #1
Merged
Merged
Conversation
SidebarNav, AppHeader and RoomCard imported next/link and
next/navigation, which tied the package to Next.js. They now read the
link component and the current pathname from LumyxLinkProvider, and fall
back to plain <a> elements without it. SidebarNav also accepts
activeHref. next leaves the peer dependencies.
BREAKING CHANGE: Next.js apps must wrap their pages in
<LumyxLinkProvider link={Link} pathname={usePathname()}> to keep
client-side navigation and the active nav item.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
SidebarNav,AppHeaderandRoomCardimportednext/linkandnext/navigation, which tied@lumyx/uito Next.js. The website is moving to Astro, where those imports cannot resolve.What
LumyxLinkProvider/useLumyxLink(src/lib/link.tsx): apps plug in their router's link component and current pathname once. Without a provider, links are plain<a>and no nav item is active.SidebarNavreads the pathname from the provider and accepts anactiveHrefoverride (useful for Astro islands).nextleavespeerDependenciesanddevDependencies. Version bumped to0.2.0.activeHrefoverride.Breaking change
Next.js apps must wrap their pages in
<LumyxLinkProvider link={Link} pathname={usePathname()}>to keep client-side navigation and the active nav item. Follow-up PRs do this inlumyx-dev/dashboardandlumyx-dev/cloud. Their lockfiles pin the currentmaincommit, so they keep working until they upgrade.