Change Layout
Change Layout
You can change default layouts by following these easy steps.
Let's assume we want to turn the minimal layout into default layout.
Step 1
Go to /src/app directory and change minimal directory name minimal to (minimal).
And (modern) directory to modern.
Step 2
Now go to src/components/setting/setting-drawer.tsx file.
Inside the LayoutSwitcher function change all the LAYOUT_OPTIONS.MODERN to LAYOUT_OPTIONS.MINIMAL.
Step 3
Go to src/lib/hooks/useLayout.ts file and change all the LAYOUT_OPTIONS.MODERN to LAYOUT_OPTIONS.MINIMAL
Step 4
Go to src/lib/constants/index.ts file and change the order LAYOUT_OPTIONS enum to the following.
export enum LAYOUT_OPTIONS {
MINIMAL = 'minimal',
MODERN = 'modern',
RETRO = 'retro',
CLASSIC = 'classic',
}
You will notice in the setting drawer the order of minimal layout is now changed as default.
Step 5
Change the Sidebar links.
The sidebar data and components all are in src/layouts/sidebar directory.
- On file
_default.tsxchange the parameter value ofSidebarfunction.
layoutOption = "";
to
(layoutOption = "/modern")
- On file
_default.tsxchange the below line.
href: layoutOption + (layoutOption === `/${LAYOUT_OPTIONS.RETRO}` && item.href === '/' ? '' : item.href),
to
href: layoutOption + (item.href === '/' ? '' : item.href),
- On file
_layout-menu.tsxchange this function.
const minimalMenuItems = defaultMenuItems.map((item) => ({
name: item.name,
icon: item.icon,
href: "/" + LAYOUT_OPTIONS.MINIMAL + (item.href === "/" ? "" : item.href),
...(item.dropdownItems && {
dropdownItems: item?.dropdownItems?.map((dropdownItem: any) => ({
name: dropdownItem.name,
...(dropdownItem?.icon && { icon: dropdownItem.icon }),
href: "/" + LAYOUT_OPTIONS.MINIMAL + dropdownItem.href,
})),
}),
}));
to
const minimalMenuItems = defaultMenuItems.map((item) => ({
name: item.name,
icon: item.icon,
href: item.href,
...(item.dropdownItems && {
dropdownItems: item?.dropdownItems?.map((dropdownItem: any) => ({
name: dropdownItem.name,
...(dropdownItem?.icon && { icon: dropdownItem.icon }),
href: dropdownItem.href,
})),
}),
}));
- On file
_layout-menu.tsxchange the parameter value ofDrawerMenufunction.
layoutOption = `/${LAYOUT_OPTIONS.MINIMAL}`,
to
layoutOption = '',
- On file
_layout-menu.tsxchange this function insideDrawerMenufunction.
const drawerMenuItems = menuItems.map((item) => ({
name: item.name,
icon: item.icon,
href: layoutOption + (item.href === "/" ? "" : item.href),
...(item.dropdownItems && {
dropdownItems: item?.dropdownItems?.map((dropdownItem: any) => ({
name: dropdownItem.name,
...(dropdownItem?.icon && { icon: dropdownItem.icon }),
href: layoutOption + dropdownItem.href,
})),
}),
}));
to
const drawerMenuItems = menuItems.map((item) => ({
name: item.name,
icon: item.icon,
href:
layoutOption +
(layoutOption === `/${LAYOUT_OPTIONS.CLASSIC}` && item.href === "/"
? ""
: item.href),
...(item.dropdownItems && {
dropdownItems: item?.dropdownItems?.map((dropdownItem: any) => ({
name: dropdownItem.name,
...(dropdownItem?.icon && { icon: dropdownItem.icon }),
href: layoutOption + dropdownItem.href,
})),
}),
}));
Step 6
Change All the other links for 'minimal'.
- Change this below code from the entire project.
layout === LAYOUT_OPTIONS.MODERN ? "" : layout;
to
layout === LAYOUT_OPTIONS.MINIMAL ? "" : layout;
- Change this code from the entire project.
(layout === LAYOUT_OPTIONS.MODERN ? "" : `/${layout}`) + routes.notification;
to
(layout === LAYOUT_OPTIONS.MINIMAL ? "" : `/${layout}`) + routes.notification;
- Change this code from the entire project.
layout === LAYOUT_OPTIONS.MODERN ? '/' : routes.home + layout,
to
layout === LAYOUT_OPTIONS.MINIMAL ? '/' : routes.home + layout,
- Change this code from the entire project.
layout === LAYOUT_OPTIONS.MODERN ? '' : routes.home + layout,
to
layout === LAYOUT_OPTIONS.MINIMAL ? '' : routes.home + layout,
- Change this code from the entire project.
const newPath =
layout === LAYOUT_OPTIONS.MODERN
? routes.profile
: `/${layout}${routes.profile}`;
to
const newPath =
layout === LAYOUT_OPTIONS.MINIMAL
? routes.profile
: `/${layout}${routes.profile}`;
Your are all set to use MINIMAL layout as your default layout.
If you want to change any of the layout to default follow the same process.