From 5639ed0f139bbe5df93e22b927f4653f5f38d8fd Mon Sep 17 00:00:00 2001 From: Claudio Fuentes Date: Thu, 3 Apr 2025 15:58:41 -0400 Subject: [PATCH 1/5] refactor: enhance breadcrumb navigation by marking current page in controls and policies sections --- .../[orgId]/controls/[controlId]/page.tsx | 2 +- .../(dashboard)/[orgId]/controls/page.tsx | 96 +++++++++---------- .../[orgId]/policies/[policyId]/page.tsx | 2 +- .../(dashboard)/[orgId]/policies/all/page.tsx | 2 +- 4 files changed, 51 insertions(+), 51 deletions(-) diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/[controlId]/page.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/[controlId]/page.tsx index 4804363287..76e5f59141 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/[controlId]/page.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/[controlId]/page.tsx @@ -49,7 +49,7 @@ export default async function SingleControlPage({ params }: PageProps) { label: "Controls", href: `/${session.session.activeOrganizationId}/controls`, }, - { label: control.name }, + { label: control.name, current: true }, ]} > diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/page.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/page.tsx index e3a989ab54..a212a4e83c 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/page.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/controls/page.tsx @@ -11,64 +11,64 @@ import { Suspense } from "react"; import { ControlsTable } from "./components/controls-table"; interface ControlTableProps { - params: Promise<{ locale: string }>; - searchParams: Promise; + params: Promise<{ locale: string }>; + searchParams: Promise; } export default async function ControlsPage({ - params, - ...props + params, + ...props }: ControlTableProps) { - const { locale } = await params; - const searchParams = await props.searchParams; - const search = searchParamsCache.parse(searchParams); - const validFilters = getValidFilters(search.filters); - setStaticParamsLocale(locale); + const { locale } = await params; + const searchParams = await props.searchParams; + const search = searchParamsCache.parse(searchParams); + const validFilters = getValidFilters(search.filters); + setStaticParamsLocale(locale); - const promises = Promise.all([ - getControls({ - ...search, - filters: validFilters, - }), - ]); + const promises = Promise.all([ + getControls({ + ...search, + filters: validFilters, + }), + ]); - return ( - - - } - > - - - - ); + return ( + + + } + > + + + + ); } export async function generateMetadata({ - params, + params, }: { - params: Promise<{ locale: string }>; + params: Promise<{ locale: string }>; }): Promise { - const { locale } = await params; + const { locale } = await params; - setStaticParamsLocale(locale); - const t = await getI18n(); + setStaticParamsLocale(locale); + const t = await getI18n(); - return { - title: t("sidebar.policies"), - }; -} \ No newline at end of file + return { + title: t("sidebar.policies"), + }; +} diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/[policyId]/page.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/[policyId]/page.tsx index 4b58dde86d..a286468011 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/[policyId]/page.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/[policyId]/page.tsx @@ -22,7 +22,7 @@ export default async function PolicyDetails({ diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/all/page.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/all/page.tsx index 37f3097bfd..854515fc6f 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/all/page.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/all/page.tsx @@ -32,7 +32,7 @@ export default async function PoliciesPage({ ]); return ( - + ); From 34fdaa3eb2bb019dfe06f7d4bf3bfc07d6878844 Mon Sep 17 00:00:00 2001 From: Claudio Fuentes Date: Thu, 3 Apr 2025 16:06:19 -0400 Subject: [PATCH 2/5] refactor: remove unused separator from layout and improve secondary menu rendering with key prop --- .../(app)/(dashboard)/[orgId]/policies/layout.tsx | 1 - packages/ui/src/components/secondary-menu.tsx | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/layout.tsx b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/layout.tsx index ccacc06346..0a0ed6230e 100644 --- a/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/layout.tsx +++ b/apps/app/src/app/[locale]/(app)/(dashboard)/[orgId]/policies/layout.tsx @@ -1,6 +1,5 @@ import { getI18n } from "@/locales/server"; import { SecondaryMenu } from "@comp/ui/secondary-menu"; -import { Separator } from "@comp/ui/separator"; interface LayoutProps { children: React.ReactNode; diff --git a/packages/ui/src/components/secondary-menu.tsx b/packages/ui/src/components/secondary-menu.tsx index 7703254c61..c3345e73c3 100644 --- a/packages/ui/src/components/secondary-menu.tsx +++ b/packages/ui/src/components/secondary-menu.tsx @@ -43,13 +43,12 @@ export function SecondaryMenu({ itemPath: string, activeOverrideIdPrefix?: string, ): boolean { - console.log(itemPath, activeOverrideIdPrefix); - const currentSegments = getPathSegments(pathname); const itemSegments = getPathSegments(itemPath); const segmentsToCompare = currentSegments.slice(0, 3); + console.log(currentSegments, activeOverrideIdPrefix); if ( activeOverrideIdPrefix && currentSegments.toString().includes(activeOverrideIdPrefix) @@ -64,7 +63,10 @@ export function SecondaryMenu({ } return ( -