app-project: Refactor NavLink to handle internal vs external route #6320
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.
Package
app-project
Linked Issue and/or Talk Post
Related to #6318
Links to external routes should not use
next/link
. PFE pages are considered external routes as well as fe-root. They're all completely separate web apps.Describe your changes
disabled
state from NavLink. This prop is not used anywhere in combo with NavLink in app-project. There's no reason to keep it, and much more elegant solutions exist to display a disabled link or button as needed such as a disabled PlainButton).externalLink
option to thelink
prop passed to shared component NavLInk. Rather than rip out NavLink from app-project components that shouldn't be using anext/link
(there's a lot of them 😬 ), I refactored NavLink with logic to handle whether to usenext/link
depending on:linkProps
which get passed on to NavLink. I only found one case where this was actually happening (project stats), but in order to not disrupt the one-size-fits-all ContentBox behavior, I chose to adapt NavLink's code.How to Review
This is best tested by running locally in production mode:
(You will still see one failed prefetch for
/talk
in the network tab because of the JoinInButton handled in #6318).Checklist
PR Creator - Please cater the checklist to fit the review needed for your code changes.
PR Reviewer - Use the checklist during your review. Each point should be checkmarked or discussed before PR approval.
General
yarn panic && yarn bootstrap
ordocker-compose up --build
and FEM works as expectedGeneral UX
Example Staging Project: i-fancy-cats
Bug Fix