docs/docs/reference/dashboard/extensions-api/navigation.mdx
Defines a custom navigation section in the dashboard sidebar.
Individual items can then be added to the section by defining routes in the
routes property of your Dashboard extension.
interface DashboardNavSectionDefinition {
id: string;
title: string;
icon?: LucideIcon;
order?: number;
placement?: 'top' | 'bottom';
}
<MemberInfo kind="property" type={string} />
A unique identifier for the navigation section.
<MemberInfo kind="property" type={string} />
The display title for the navigation section.
<MemberInfo kind="property" type={LucideIcon} />
Optional icon to display next to the section title. The icons should
be imported from 'lucide-react'.
Example
import { PlusIcon } from 'lucide-react';
<MemberInfo kind="property" type={number} />
Optional order number to control the position of this section in the sidebar.
<MemberInfo kind="property" type={'top' | 'bottom'} />
Optional placement to control the position of this section in the sidebar.
</div> ## NavMenuItem <GenerationInfo sourceFile="packages/dashboard/src/lib/framework/nav-menu/nav-menu-extensions.ts" sourceLine="16" packageName="@vendure/dashboard" since="3.4.0" />Defines an items in the navigation menu.
interface NavMenuItem {
id: string;
title: string;
url: string;
icon?: LucideIcon;
order?: number;
placement?: NavMenuSectionPlacement;
requiresPermission?: string | string[];
}
<MemberInfo kind="property" type={string} />
A unique ID for this nav menu item
<MemberInfo kind="property" type={string} />
The title that will appear in the nav menu
<MemberInfo kind="property" type={string} />
The url of the route which this nav item links to.
<MemberInfo kind="property" type={LucideIcon} />
An optional icon component to represent the item,
which should be imported from lucide-react.
<MemberInfo kind="property" type={number} />
The order is an number which allows you to control the relative position in relation to other items in the menu. A higher number appears further down the list.
<MemberInfo kind="property" type={NavMenuSectionPlacement} />
<MemberInfo kind="property" type={string | string[]} />
This can be used to restrict the menu item to the given permission or permissions.
</div>