From db3dc810dc6985c364454a8470560d810254636f Mon Sep 17 00:00:00 2001 From: Mehdi Hamri <143011364+pixelfact@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:06:10 +0200 Subject: [PATCH] Revamp item nav (#21) --- .../adapters/default/default.adapter.tsx | 16 ++++++++-------- .../molecules/item-nav/item-nav.stories.tsx | 4 +++- .../molecules/item-nav/item-nav.types.ts | 3 ++- .../menu/primary-menu/primary-menu.tsx | 8 ++++---- .../menu/secondary-menu/secondary-menu.tsx | 4 ++-- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/design-system/molecules/item-nav/adapters/default/default.adapter.tsx b/design-system/molecules/item-nav/adapters/default/default.adapter.tsx index 923212565..00c0f94e2 100644 --- a/design-system/molecules/item-nav/adapters/default/default.adapter.tsx +++ b/design-system/molecules/item-nav/adapters/default/default.adapter.tsx @@ -48,22 +48,22 @@ function Content({ } export function ItemNavDefaultAdapter({ isFolded, ...props }: ItemNavPort) { - const { isDisabled, classNames, onClick, ...linkProps } = props; + const { isDisabled, classNames, onClick, linkProps } = props; const slots = ItemNavDefaultVariants({ isDisabled, }); - if (onClick) { + if (linkProps) { return ( - + + {({ isExternal }) => } + ); } return ( - - {({ isExternal }) => } - + ); } diff --git a/design-system/molecules/item-nav/item-nav.stories.tsx b/design-system/molecules/item-nav/item-nav.stories.tsx index ff318f77d..711185b63 100644 --- a/design-system/molecules/item-nav/item-nav.stories.tsx +++ b/design-system/molecules/item-nav/item-nav.stories.tsx @@ -6,7 +6,9 @@ import { ItemNav } from "./variants/item-nav-default"; type Story = StoryObj; const defaultProps: ItemNavPort = { - href: "https://www.google.com", + linkProps: { + href: "https://www.google.com", + }, icon: { name: "ri-home-4-line", }, diff --git a/design-system/molecules/item-nav/item-nav.types.ts b/design-system/molecules/item-nav/item-nav.types.ts index 0e4c379aa..853ad8b60 100644 --- a/design-system/molecules/item-nav/item-nav.types.ts +++ b/design-system/molecules/item-nav/item-nav.types.ts @@ -13,7 +13,8 @@ interface ClassNames { label: string; } -export interface ItemNavPort extends _BaseLinkProps, PropsWithChildren { +export interface ItemNavPort extends PropsWithChildren { + linkProps?: _BaseLinkProps; classNames?: Partial; labelProps?: Partial>; icon: IconPort; diff --git a/shared/features/navigation/menu/primary-menu/primary-menu.tsx b/shared/features/navigation/menu/primary-menu/primary-menu.tsx index cce6d8014..0acb9d7a5 100644 --- a/shared/features/navigation/menu/primary-menu/primary-menu.tsx +++ b/shared/features/navigation/menu/primary-menu/primary-menu.tsx @@ -8,27 +8,27 @@ export function PrimaryMenu({ isFolded }: PrimaryMenuProps) { diff --git a/shared/features/navigation/menu/secondary-menu/secondary-menu.tsx b/shared/features/navigation/menu/secondary-menu/secondary-menu.tsx index daf53c68a..dd93f0b63 100644 --- a/shared/features/navigation/menu/secondary-menu/secondary-menu.tsx +++ b/shared/features/navigation/menu/secondary-menu/secondary-menu.tsx @@ -13,14 +13,14 @@ export function SecondaryMenu({ isFolded }: SecondaryMenuProps) { setIsOpen(true)} />