From 65d2cca68dde1831fa42bddbce992aa51a1833e1 Mon Sep 17 00:00:00 2001 From: Eren Date: Wed, 25 Sep 2024 15:06:18 +0300 Subject: [PATCH 1/5] chore: fix api error on settings route --- apps/web/src/app/[lang]/app/[type]/settings/data.ts | 10 +++++----- .../src/app/[lang]/app/[type]/settings/tenant/page.tsx | 2 +- .../src/app/api/settings/product/{ => [data]}/route.ts | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) rename apps/web/src/app/api/settings/product/{ => [data]}/route.ts (98%) diff --git a/apps/web/src/app/[lang]/app/[type]/settings/data.ts b/apps/web/src/app/[lang]/app/[type]/settings/data.ts index 70e15941c..5657ba565 100644 --- a/apps/web/src/app/[lang]/app/[type]/settings/data.ts +++ b/apps/web/src/app/[lang]/app/[type]/settings/data.ts @@ -47,7 +47,7 @@ export const dataConfigOfManagement: Record = { convertors: { countryId: { data: () => { - return fetch(getBaseLink("api/management/country")).then( + return fetch(getBaseLink("api/settings/product/country")).then( (_data) => _data.json(), ); }, @@ -136,7 +136,7 @@ export const dataConfigOfManagement: Record = { data: () => { return fetch( getBaseLink( - "api/management/product-groups?maxResultCount=1000", + "api/settings/product/product-groups?maxResultCount=1000", ), ) .then((data) => data.json()) @@ -152,7 +152,7 @@ export const dataConfigOfManagement: Record = { vatId: { data: () => { return fetch( - getBaseLink("api/management/vats?maxResultCount=1000"), + getBaseLink("api/settings/product/vats?maxResultCount=1000"), ) .then((data) => data.json()) .then( @@ -166,8 +166,8 @@ export const dataConfigOfManagement: Record = { }, countryId: { data: () => { - return fetch(getBaseLink("api/management/country")).then((data) => - data.json(), + return fetch(getBaseLink("api/settings/product/country")).then( + (data) => data.json(), ); }, get: "name", diff --git a/apps/web/src/app/[lang]/app/[type]/settings/tenant/page.tsx b/apps/web/src/app/[lang]/app/[type]/settings/tenant/page.tsx index 838a014b1..b2dc2cca5 100644 --- a/apps/web/src/app/[lang]/app/[type]/settings/tenant/page.tsx +++ b/apps/web/src/app/[lang]/app/[type]/settings/tenant/page.tsx @@ -7,7 +7,7 @@ export default function Page({ params: { lang: string; type: string }; }) { permanentRedirect( - getBaseLink(`app/${params.type}/management/tenant/home`, true, params.lang), + getBaseLink(`app/${params.type}/settings/tenant/home`, true, params.lang), RedirectType.push, ); } diff --git a/apps/web/src/app/api/settings/product/route.ts b/apps/web/src/app/api/settings/product/[data]/route.ts similarity index 98% rename from apps/web/src/app/api/settings/product/route.ts rename to apps/web/src/app/api/settings/product/[data]/route.ts index bd969b22f..851214a21 100644 --- a/apps/web/src/app/api/settings/product/route.ts +++ b/apps/web/src/app/api/settings/product/[data]/route.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument -- TODO: we need to fix this*/ import type { NextRequest } from "next/server"; import { getSettingServiceClient } from "src/lib"; -import type { Clients } from "../../util"; -import { commonDELETE, commonGET, commonPOST, commonPUT } from "../../util"; +import type { Clients } from "../../../util"; +import { commonDELETE, commonGET, commonPOST, commonPUT } from "../../../util"; const clients: Clients = { vats: async () => { From c82071d2208f3820e7086bf11bd7a29aed04f505 Mon Sep 17 00:00:00 2001 From: Eren Date: Wed, 25 Sep 2024 15:09:47 +0300 Subject: [PATCH 2/5] chore: move traveller to crm --- .../[type]/{ => crm}/traveller/[travellerId]/form.tsx | 0 .../[type]/{ => crm}/traveller/[travellerId]/page.tsx | 0 .../[lang]/app/[type]/{ => crm}/traveller/actions.ts | 0 .../[lang]/app/[type]/{ => crm}/traveller/new/form.tsx | 0 .../[lang]/app/[type]/{ => crm}/traveller/new/page.tsx | 0 .../app/[lang]/app/[type]/{ => crm}/traveller/page.tsx | 0 .../[lang]/app/[type]/{ => crm}/traveller/table.tsx | 0 apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx | 9 +++++++++ .../[lang]/app/[type]/navbar/projects/unirefund.tsx | 10 +--------- 9 files changed, 10 insertions(+), 9 deletions(-) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/[travellerId]/form.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/[travellerId]/page.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/actions.ts (100%) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/new/form.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/new/page.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/page.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{ => crm}/traveller/table.tsx (100%) diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/[travellerId]/form.tsx b/apps/web/src/app/[lang]/app/[type]/crm/traveller/[travellerId]/form.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/[travellerId]/form.tsx rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/[travellerId]/form.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/[travellerId]/page.tsx b/apps/web/src/app/[lang]/app/[type]/crm/traveller/[travellerId]/page.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/[travellerId]/page.tsx rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/[travellerId]/page.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/actions.ts b/apps/web/src/app/[lang]/app/[type]/crm/traveller/actions.ts similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/actions.ts rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/actions.ts diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/new/form.tsx b/apps/web/src/app/[lang]/app/[type]/crm/traveller/new/form.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/new/form.tsx rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/new/form.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/new/page.tsx b/apps/web/src/app/[lang]/app/[type]/crm/traveller/new/page.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/new/page.tsx rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/new/page.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/page.tsx b/apps/web/src/app/[lang]/app/[type]/crm/traveller/page.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/page.tsx rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/page.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/traveller/table.tsx b/apps/web/src/app/[lang]/app/[type]/crm/traveller/table.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/traveller/table.tsx rename to apps/web/src/app/[lang]/app/[type]/crm/traveller/table.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx b/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx index 7379e1308..eaff9aaf9 100644 --- a/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx +++ b/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx @@ -276,6 +276,15 @@ export const crm: NavbarItemsFromDB[] = [ parentNavbarItemKey: "crm", displayOrder: 1, }, + { + key: "crm/traveller", + displayName: "Traveller", + description: "Manage traveller-related settings.", + href: "crm/traveller", + icon: "plane", + parentNavbarItemKey: "crm", + displayOrder: 1, + }, ]; export const contracts: NavbarItemsFromDB[] = [ diff --git a/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx b/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx index 5e5b333ef..76790f99e 100644 --- a/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx +++ b/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx @@ -24,15 +24,7 @@ export const unirefundNavbarDataFromDB: NavbarItemsFromDB[] = [ ...settings, ...crm, ...contracts, - { - key: "traveller", - displayName: "Traveller", - description: "Manage traveller-related settings.", - href: "traveller", - icon: "plane", - parentNavbarItemKey: "/", - displayOrder: 1, - }, + { key: "operations", displayName: "Operations", From 999561f6b98a1018583173002aebf30416da5154 Mon Sep 17 00:00:00 2001 From: Eren Date: Wed, 25 Sep 2024 15:10:28 +0300 Subject: [PATCH 3/5] chore: update ui --- packages/ayasofyazilim-ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ayasofyazilim-ui b/packages/ayasofyazilim-ui index 1226560cc..ce12d2e2b 160000 --- a/packages/ayasofyazilim-ui +++ b/packages/ayasofyazilim-ui @@ -1 +1 @@ -Subproject commit 1226560cc742890fe3d590ac698e96236b1e019d +Subproject commit ce12d2e2bff4d7ed0dcaaf3200ebb9975dfff06c From 94951e893459f8d553af65719d4ca398af5e12b5 Mon Sep 17 00:00:00 2001 From: Eren Date: Wed, 25 Sep 2024 15:12:25 +0300 Subject: [PATCH 4/5] chore: update ui --- pnpm-lock.yaml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b2abea77..f978dd6fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -556,8 +556,8 @@ importers: specifier: ^2.9.0 version: 2.9.0 lucide-react: - specifier: ^0.445.0 - version: 0.445.0(react@18.3.0) + specifier: ^0.359.0 + version: 0.359.0(react@18.3.0) next: specifier: ^14.2.5 version: 14.2.11(@babel/core@7.25.2)(@playwright/test@1.47.1)(react-dom@18.3.0(react@18.3.0))(react@18.3.0) @@ -7071,6 +7071,11 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lucide-react@0.359.0: + resolution: {integrity: sha512-bxVL+rM/wacjpT0BKShA6r5IIKb6LCRg+ltFG9pnnIwaRX8kK3hq8v5JwMpT7RC6XeqB5cSaaV6GapPWWmtliw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + lucide-react@0.445.0: resolution: {integrity: sha512-YrLf3aAHvmd4dZ8ot+mMdNFrFpJD7YRwQ2pUcBhgqbmxtrMP4xDzIorcj+8y+6kpuXBF4JB0NOCTUWIYetJjgA==} peerDependencies: @@ -16634,6 +16639,10 @@ snapshots: lru-cache@7.18.3: {} + lucide-react@0.359.0(react@18.3.0): + dependencies: + react: 18.3.0 + lucide-react@0.445.0(react@18.3.0): dependencies: react: 18.3.0 From 857475dc3babf6268363542e9d8d7f41b2de6744 Mon Sep 17 00:00:00 2001 From: Eren Date: Wed, 25 Sep 2024 15:18:26 +0300 Subject: [PATCH 5/5] chore: rename dashboard to management --- .../[domain]/[data]/page.tsx | 0 .../[domain]/organization/action.ts | 0 .../[domain]/organization/form.tsx | 0 .../[domain]/organization/page.tsx | 0 .../[type]/{dashboard => management}/data.ts | 0 .../app/[lang]/app/[type]/navbar/groups.tsx | 120 +++++++++--------- .../app/[type]/navbar/projects/ayshopgo.tsx | 4 +- .../app/[type]/navbar/projects/unirefund.tsx | 4 +- 8 files changed, 64 insertions(+), 64 deletions(-) rename apps/web/src/app/[lang]/app/[type]/{dashboard => management}/[domain]/[data]/page.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{dashboard => management}/[domain]/organization/action.ts (100%) rename apps/web/src/app/[lang]/app/[type]/{dashboard => management}/[domain]/organization/form.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{dashboard => management}/[domain]/organization/page.tsx (100%) rename apps/web/src/app/[lang]/app/[type]/{dashboard => management}/data.ts (100%) diff --git a/apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/[data]/page.tsx b/apps/web/src/app/[lang]/app/[type]/management/[domain]/[data]/page.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/[data]/page.tsx rename to apps/web/src/app/[lang]/app/[type]/management/[domain]/[data]/page.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/organization/action.ts b/apps/web/src/app/[lang]/app/[type]/management/[domain]/organization/action.ts similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/organization/action.ts rename to apps/web/src/app/[lang]/app/[type]/management/[domain]/organization/action.ts diff --git a/apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/organization/form.tsx b/apps/web/src/app/[lang]/app/[type]/management/[domain]/organization/form.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/organization/form.tsx rename to apps/web/src/app/[lang]/app/[type]/management/[domain]/organization/form.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/organization/page.tsx b/apps/web/src/app/[lang]/app/[type]/management/[domain]/organization/page.tsx similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/dashboard/[domain]/organization/page.tsx rename to apps/web/src/app/[lang]/app/[type]/management/[domain]/organization/page.tsx diff --git a/apps/web/src/app/[lang]/app/[type]/dashboard/data.ts b/apps/web/src/app/[lang]/app/[type]/management/data.ts similarity index 100% rename from apps/web/src/app/[lang]/app/[type]/dashboard/data.ts rename to apps/web/src/app/[lang]/app/[type]/management/data.ts diff --git a/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx b/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx index eaff9aaf9..1c52ca1c3 100644 --- a/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx +++ b/apps/web/src/app/[lang]/app/[type]/navbar/groups.tsx @@ -1,166 +1,166 @@ import type { NavbarItemsFromDB } from "@repo/ui/theme/types"; -export const dashboard: NavbarItemsFromDB[] = [ +export const management: NavbarItemsFromDB[] = [ { - key: "dashboard", - displayName: "Dashboard", - description: "View and manage your dashboard settings.", - href: "dashboard/openiddict/applications", - icon: "dashboard", + key: "management", + displayName: "Management", + description: "View and manage your management settings.", + href: "management/openiddict/applications", + icon: "management", parentNavbarItemKey: "/", displayOrder: 1, }, { - key: "dashboard/openiddict", + key: "management/openiddict", displayName: "Open Id Dict", description: "Manage Open ID dict settings.", - href: "dashboard/openiddict/applications", + href: "management/openiddict/applications", icon: "id", - parentNavbarItemKey: "dashboard", + parentNavbarItemKey: "management", displayOrder: 1, }, { - key: "dashboard/openiddict/applications", + key: "management/openiddict/applications", displayName: "Applications", description: "Manage applications within Open Id Dict.", - href: "dashboard/openiddict/applications", + href: "management/openiddict/applications", icon: "app", - parentNavbarItemKey: "dashboard/openiddict", + parentNavbarItemKey: "management/openiddict", displayOrder: 1, }, { - key: "dashboard/openiddict/scopes", + key: "management/openiddict/scopes", displayName: "Scopes", description: "View and manage scopes for Open Id Dict.", - href: "dashboard/openiddict/scopes", + href: "management/openiddict/scopes", icon: "scope", - parentNavbarItemKey: "dashboard/openiddict", + parentNavbarItemKey: "management/openiddict", displayOrder: 1, }, { - key: "dashboard/admin", - displayName: "Admin Management", + key: "management/admin", + displayName: "Admin", description: "Access administrative tools and settings.", - href: "dashboard/admin/languages", + href: "management/admin/languages", icon: "management", - parentNavbarItemKey: "dashboard", + parentNavbarItemKey: "management", displayOrder: 1, }, { - key: "dashboard/admin/languages", + key: "management/admin/languages", displayName: "Languages", description: "Manage language settings and translations.", - href: "dashboard/admin/languages", + href: "management/admin/languages", icon: "language", - parentNavbarItemKey: "dashboard/admin", + parentNavbarItemKey: "management/admin", displayOrder: 1, }, { - key: "dashboard/admin/language-texts", + key: "management/admin/language-texts", displayName: "Language Texts", description: "Edit and review language texts.", - href: "dashboard/admin/language-texts", + href: "management/admin/language-texts", icon: "book", - parentNavbarItemKey: "dashboard/admin", + parentNavbarItemKey: "management/admin", displayOrder: 1, }, { - key: "dashboard/saas", - displayName: "Saas Management", + key: "management/saas", + displayName: "Saas", description: "Manage SaaS configurations and settings.", - href: "dashboard/saas/edition", + href: "management/saas/edition", icon: "management", - parentNavbarItemKey: "dashboard", + parentNavbarItemKey: "management", displayOrder: 1, }, { - key: "dashboard/saas/edition", + key: "management/saas/edition", displayName: "Edition", description: "Manage SaaS editions and plans.", - href: "dashboard/saas/edition", + href: "management/saas/edition", icon: "edition", - parentNavbarItemKey: "dashboard/saas", + parentNavbarItemKey: "management/saas", displayOrder: 1, }, { - key: "dashboard/saas/tenant", + key: "management/saas/tenant", displayName: "Tenant", description: "Manage SaaS tenant settings and configurations.", - href: "dashboard/saas/tenant", + href: "management/saas/tenant", icon: "globe", - parentNavbarItemKey: "dashboard/saas", + parentNavbarItemKey: "management/saas", displayOrder: 1, }, { - key: "dashboard/identity", - displayName: "Identity Management", + key: "management/identity", + displayName: "Identity", description: "Manage user identities and roles.", - href: "dashboard/identity/role", + href: "management/identity/role", icon: "management", - parentNavbarItemKey: "dashboard", + parentNavbarItemKey: "management", displayOrder: 1, }, { - key: "dashboard/identity/role", + key: "management/identity/role", displayName: "Role", description: "Manage user roles and permissions.", - href: "dashboard/identity/role", + href: "management/identity/role", icon: "role", - parentNavbarItemKey: "dashboard/identity", + parentNavbarItemKey: "management/identity", displayOrder: 1, }, { - key: "dashboard/identity/user", + key: "management/identity/user", displayName: "User", description: "Manage user accounts and profiles.", - href: "dashboard/identity/user", + href: "management/identity/user", icon: "identity", - parentNavbarItemKey: "dashboard/identity", + parentNavbarItemKey: "management/identity", displayOrder: 1, }, { - key: "dashboard/identity/claim-type", + key: "management/identity/claim-type", displayName: "Claim Type", description: "Manage claim types for user identities.", - href: "dashboard/identity/claim-type", + href: "management/identity/claim-type", icon: "scan", - parentNavbarItemKey: "dashboard/identity", + parentNavbarItemKey: "management/identity", displayOrder: 1, }, { - key: "dashboard/identity/security-logs", + key: "management/identity/security-logs", displayName: "Security Logs", description: "View security logs and audit trails.", - href: "dashboard/identity/security-logs", + href: "management/identity/security-logs", icon: "lock", - parentNavbarItemKey: "dashboard/identity", + parentNavbarItemKey: "management/identity", displayOrder: 1, }, { - key: "dashboard/identity/organization", + key: "management/identity/organization", displayName: "Organization", description: "Manage organizational settings and structure.", - href: "dashboard/identity/organization", + href: "management/identity/organization", icon: "building", - parentNavbarItemKey: "dashboard/identity", + parentNavbarItemKey: "management/identity", displayOrder: 1, }, { - key: "dashboard/audit-logs/audit-logs", + key: "management/audit-logs/audit-logs", displayName: "Audit Logs", description: "View and analyze audit logs.", - href: "dashboard/audit-logs/audit-logs", + href: "management/audit-logs/audit-logs", icon: "log", - parentNavbarItemKey: "dashboard", + parentNavbarItemKey: "management", displayOrder: 1, }, { - key: "dashboard/text-templates/text-templates", + key: "management/text-templates/text-templates", displayName: "Text Templates", description: "Manage and create text templates.", - href: "dashboard/text-templates/text-templates", + href: "management/text-templates/text-templates", icon: "text", - parentNavbarItemKey: "dashboard", + parentNavbarItemKey: "management", displayOrder: 1, }, ]; diff --git a/apps/web/src/app/[lang]/app/[type]/navbar/projects/ayshopgo.tsx b/apps/web/src/app/[lang]/app/[type]/navbar/projects/ayshopgo.tsx index 5fc6dc89a..6aac26b0d 100644 --- a/apps/web/src/app/[lang]/app/[type]/navbar/projects/ayshopgo.tsx +++ b/apps/web/src/app/[lang]/app/[type]/navbar/projects/ayshopgo.tsx @@ -1,5 +1,5 @@ import type { NavbarItemsFromDB } from "@repo/ui/theme/types"; -import { dashboard } from "../groups"; +import { management } from "../groups"; export const ayshopgoNavbarDataFromDB: NavbarItemsFromDB[] = [ { @@ -20,7 +20,7 @@ export const ayshopgoNavbarDataFromDB: NavbarItemsFromDB[] = [ parentNavbarItemKey: "/", displayOrder: 1, }, - ...dashboard, + ...management, { key: "customers", displayName: "Customers", diff --git a/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx b/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx index 76790f99e..71936a639 100644 --- a/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx +++ b/apps/web/src/app/[lang]/app/[type]/navbar/projects/unirefund.tsx @@ -1,5 +1,5 @@ import type { NavbarItemsFromDB } from "@repo/ui/theme/types"; -import { contracts, crm, dashboard, settings } from "../groups"; +import { contracts, crm, management, settings } from "../groups"; export const unirefundNavbarDataFromDB: NavbarItemsFromDB[] = [ { @@ -20,7 +20,7 @@ export const unirefundNavbarDataFromDB: NavbarItemsFromDB[] = [ parentNavbarItemKey: "/", displayOrder: 1, }, - ...dashboard, + ...management, ...settings, ...crm, ...contracts,