Skip to content
This repository was archived by the owner on Sep 23, 2026. It is now read-only.
This repository was archived by the owner on Sep 23, 2026. It is now read-only.

[toolpad-core] Add support for external links in dashboard navigation #4413

Closed

Description

@l-astro

Summary

It would be great to include support for external links in the navigation component; perhaps add a new NavigationExternal type to be added to NavigationItem?

Examples

No response

Motivation

We have several services that are as yet outside of the mui framework but the user needs visibility of them in the dashboard nav. We would like these to be nested under a single item e.g., ExternalServices > ExternalService1, ExternalService2... Currently the breadcrumbs gets muddled if these external href are child items, as the NAVIGATION expects a segment property and concatenates this string to the href.

Search keywords: navigation, routing, external link

Activity

  1. added
    waiting for 👍Waiting for upvotes. Open for community feedback and needs more interest to be worked on.
    type: enhancementIt’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.
    and removed on Nov 14, 2024
  2. changed the title [-]Add support for external links in dashboard navigation[/-] [+][toolpad-core] Add support for external links in dashboard navigation[/+] on Nov 18, 2024
  3. apedroferreira commented on Nov 18, 2024

    @apedroferreira
    Collaborator

    Sounds like a useful feature!
    We could add something like a path or href property to navigation page items, where any path supported by a typical href attribute could be used as a string. This property would take priority over segments.

  4. Janpot commented on Nov 18, 2024

    @Janpot
    Member

    Or alternatively, a renderItem prop to open up more options of customization, analog to DataGrid renderCell.

  5. SamuelLeapifai commented on Nov 27, 2024

    @SamuelLeapifai

    I'd like to vote for the render props approach. Right now we can use only 3 kinds of navigation items: header, divider and a regular item. Would be great to allow for more options.

    In our case, we'd like to display loader/spinner and 2 versions of headers (larger and smaller header). Currently there isn't even an option to provide classname to do css magic. Custom render prop would allow for many more features.

    One more prop that would be useful is active: boolean | () => boolean. For custom routes that don't leverage segments to define if the menu item is active or not, we'd like to provide our own logic. This could perhaps also be solved with the render prop above.

  6. apedroferreira commented on Nov 27, 2024

    @apedroferreira
    Collaborator

    I'd like to vote for the render props approach. Right now we can use only 3 kinds of navigation items: header, divider and a regular item. Would be great to allow for more options.

    In our case, we'd like to display loader/spinner and 2 versions of headers (larger and smaller header). Currently there isn't even an option to provide classname to do css magic. Custom render prop would allow for many more features.

    One more prop that would be useful is active: boolean | () => boolean. For custom routes that don't leverage segments to define if the menu item is active or not, we'd like to provide our own logic. This could perhaps also be solved with the render prop above.

    Got it, makes sense, we can go with just a renderItem for now.
    About the active prop, maybe renderItem would cover that use case for now? But feel free to let us know more specifically what you'd try to do with it and we can consider it if it makes sense.

  7. oscar-b commented on Jan 15, 2025

    @oscar-b

    renderItem sounds really useful, and should make it possible to use something like https://github.com/vercel/react-transition-progress to display a global loading bar when navigating.

    Maybe such an indicator should actually be part of the base dashboard in toolpad-core?

  8. bpoole5591 commented on Feb 13, 2025

    @bpoole5591

    I've been building out an entire application with Toolpad and have run into this issue. I now have a requirement to add links to the Navigation pane that have external links. It's possible to create a "redirect" component to redirect the user to a passed in link but that's an unnecessarily clunky UI experience. Please add this functionality asap @apedroferreira. Thank you!

  9. moved this from Backlog to Planned in Toolpad public roadmapon Mar 12, 2025
  10. moved this from Planned to In progress in Toolpad public roadmapon Mar 19, 2025
  11. removed
    waiting for 👍Waiting for upvotes. Open for community feedback and needs more interest to be worked on.
    on Apr 1, 2025
  12. moved this from In progress to Completed in Toolpad public roadmapon Apr 21, 2025
  13. github-actions commented on Apr 21, 2025

    @github-actions

    This issue has been closed. If you have a similar problem but not exactly the same, please open a new issue.
    Now, if you have additional information related to this issue or things that could help future readers, feel free to leave a comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

customization: domComponent's DOM customizability, e.g. slot.scope: toolpad-coreAbbreviated to "core"type: enhancementIt’s an improvement, but we can’t make up our mind whether it's a bug fix or a new feature.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions