From 77bef0acf1a8b7c51cc83937b9a575d8b83936ba Mon Sep 17 00:00:00 2001 From: Philipp Schmitt <ps2@tsl.io> Date: Wed, 12 Mar 2025 10:58:12 +0100 Subject: [PATCH 1/2] FEN-168 Make Logo customizable --- packages/components/CHANGELOG.md | 6 ++++++ .../components/modules/navigations/web/Header/index.tsx | 3 +++ .../components/modules/navigations/web/Header/types.ts | 4 ++++ .../components/modules/navigations/web/NavMini/index.tsx | 3 ++- .../components/modules/navigations/web/NavMini/types.ts | 2 ++ .../modules/navigations/web/NavVertical/index.tsx | 3 ++- .../modules/navigations/web/NavVertical/types.ts | 2 ++ .../modules/navigations/web/NavigationLayout/index.tsx | 7 +++++++ .../modules/navigations/web/NavigationLayout/types.ts | 2 ++ packages/components/package.json | 2 +- 10 files changed, 31 insertions(+), 3 deletions(-) diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 07910437..d59de0a4 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,11 @@ # @baseapp-frontend/components +## 1.0.25 + +### Patch Changes + +- Forward LogoProps to make them customizable + ## 1.0.24 ### Patch Changes diff --git a/packages/components/modules/navigations/web/Header/index.tsx b/packages/components/modules/navigations/web/Header/index.tsx index 12147281..969f2167 100644 --- a/packages/components/modules/navigations/web/Header/index.tsx +++ b/packages/components/modules/navigations/web/Header/index.tsx @@ -17,6 +17,7 @@ const Header: FC<HeaderProps> = ({ children, onOpenNav, LogoIcon, + LogoProps, AccountMenu = DefaultAccountMenu, AccountMenuProps, ToolbarProps, @@ -37,8 +38,10 @@ const Header: FC<HeaderProps> = ({ > {LogoIcon && (isNavHorizontal || isNavCentered) && ( <Logo + {...LogoProps} sx={{ display: { xs: 'none', lg: 'flex' }, + ...LogoProps?.sx, }} > <LogoIcon /> diff --git a/packages/components/modules/navigations/web/Header/types.ts b/packages/components/modules/navigations/web/Header/types.ts index 415f77af..a8b21df3 100644 --- a/packages/components/modules/navigations/web/Header/types.ts +++ b/packages/components/modules/navigations/web/Header/types.ts @@ -1,5 +1,6 @@ import { FC, PropsWithChildren } from 'react' +import { LogoProps } from '@baseapp-frontend/design-system/components/web/logos' import { ThemeLayout, UISettings } from '@baseapp-frontend/design-system/styles/web' import { AppBarProps, ToolbarProps as MuiToolbarProps } from '@mui/material' @@ -10,10 +11,13 @@ export interface CustomAppBarProps extends AppBarProps { themeLayout: ThemeLayout } +export type PartialLogoProps = Omit<LogoProps, 'ref' | 'children'> + export interface HeaderProps extends PropsWithChildren { settings: UISettings onOpenNav?: VoidFunction LogoIcon?: React.FC + LogoProps?: PartialLogoProps AccountMenu?: FC<AccountMenuProps> AccountMenuProps?: Partial<AccountMenuProps> ToolbarProps?: MuiToolbarProps diff --git a/packages/components/modules/navigations/web/NavMini/index.tsx b/packages/components/modules/navigations/web/NavMini/index.tsx index 5da29a4c..5641919c 100644 --- a/packages/components/modules/navigations/web/NavMini/index.tsx +++ b/packages/components/modules/navigations/web/NavMini/index.tsx @@ -20,6 +20,7 @@ const NavMini: FC<NavMiniProps> = ({ settings, setSettings, LogoIcon, + LogoProps, openNav, onCloseNav, hideToggleButton = false, @@ -59,7 +60,7 @@ const NavMini: FC<NavMiniProps> = ({ }} > {LogoIcon && ( - <Logo sx={{ mx: 'auto', my: 2 }}> + <Logo {...LogoProps} sx={{ mx: 'auto', my: 2, ...LogoProps?.sx }}> <LogoIcon /> </Logo> )} diff --git a/packages/components/modules/navigations/web/NavMini/types.ts b/packages/components/modules/navigations/web/NavMini/types.ts index 2f5e560b..e8833ce8 100644 --- a/packages/components/modules/navigations/web/NavMini/types.ts +++ b/packages/components/modules/navigations/web/NavMini/types.ts @@ -1,5 +1,6 @@ import { UISettings } from '@baseapp-frontend/design-system/styles/web' +import { PartialLogoProps } from '../Header/types' import { NavigationData } from '../types' export interface NavMiniProps { @@ -9,5 +10,6 @@ export interface NavMiniProps { settings: UISettings setSettings: (newSettings: Partial<UISettings>) => void LogoIcon?: React.FC + LogoProps?: PartialLogoProps hideToggleButton?: boolean } diff --git a/packages/components/modules/navigations/web/NavVertical/index.tsx b/packages/components/modules/navigations/web/NavVertical/index.tsx index 122fe403..831fd1fd 100644 --- a/packages/components/modules/navigations/web/NavVertical/index.tsx +++ b/packages/components/modules/navigations/web/NavVertical/index.tsx @@ -20,6 +20,7 @@ const NavVertical: FC<NavVerticalProps> = ({ setSettings, navData, LogoIcon, + LogoProps, openNav, onCloseNav, hideToggleButton = false, @@ -58,7 +59,7 @@ const NavVertical: FC<NavVerticalProps> = ({ }} > {LogoIcon && ( - <Logo sx={{ mt: 3, ml: 4, mb: 1 }}> + <Logo {...LogoProps} sx={{ mt: 3, ml: 4, mb: 1, ...LogoProps?.sx }}> <LogoIcon /> </Logo> )} diff --git a/packages/components/modules/navigations/web/NavVertical/types.ts b/packages/components/modules/navigations/web/NavVertical/types.ts index 14ae3f41..52452427 100644 --- a/packages/components/modules/navigations/web/NavVertical/types.ts +++ b/packages/components/modules/navigations/web/NavVertical/types.ts @@ -1,5 +1,6 @@ import { UISettings } from '@baseapp-frontend/design-system/styles/web' +import { PartialLogoProps } from '../Header/types' import { NavigationData } from '../types' export interface NavVerticalProps { @@ -7,6 +8,7 @@ export interface NavVerticalProps { setSettings: (newSettings: Partial<UISettings>) => void navData: NavigationData LogoIcon?: React.FC + LogoProps?: PartialLogoProps openNav: boolean onCloseNav: VoidFunction hideToggleButton?: boolean diff --git a/packages/components/modules/navigations/web/NavigationLayout/index.tsx b/packages/components/modules/navigations/web/NavigationLayout/index.tsx index 27aeb40c..2db3b56e 100644 --- a/packages/components/modules/navigations/web/NavigationLayout/index.tsx +++ b/packages/components/modules/navigations/web/NavigationLayout/index.tsx @@ -19,6 +19,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ settings, setSettings, LogoIcon, + LogoProps, AccountMenu, AccountMenuProps, ToolbarProps, @@ -36,6 +37,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ <Header settings={settings} LogoIcon={LogoIcon} + LogoProps={LogoProps} onOpenNav={nav.onTrue} AccountMenu={AccountMenu} AccountMenuProps={AccountMenuProps} @@ -54,6 +56,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ <Header settings={settings} LogoIcon={LogoIcon} + LogoProps={LogoProps} onOpenNav={nav.onTrue} AccountMenu={AccountMenu} AccountMenuProps={AccountMenuProps} @@ -71,6 +74,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ <Header settings={settings} LogoIcon={LogoIcon} + LogoProps={LogoProps} onOpenNav={nav.onTrue} AccountMenu={AccountMenu} AccountMenuProps={AccountMenuProps} @@ -89,6 +93,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ openNav={nav.value} onCloseNav={nav.onFalse} LogoIcon={LogoIcon} + LogoProps={LogoProps} settings={settings} setSettings={setSettings} /> @@ -103,6 +108,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ <Header settings={settings} LogoIcon={LogoIcon} + LogoProps={LogoProps} onOpenNav={nav.onTrue} AccountMenu={AccountMenu} AccountMenuProps={AccountMenuProps} @@ -120,6 +126,7 @@ const NavigationLayout: FC<NavigationLayoutProps> = ({ settings={settings} setSettings={setSettings} LogoIcon={LogoIcon} + LogoProps={LogoProps} openNav={nav.value} onCloseNav={nav.onFalse} /> diff --git a/packages/components/modules/navigations/web/NavigationLayout/types.ts b/packages/components/modules/navigations/web/NavigationLayout/types.ts index a8b014dc..ee103409 100644 --- a/packages/components/modules/navigations/web/NavigationLayout/types.ts +++ b/packages/components/modules/navigations/web/NavigationLayout/types.ts @@ -5,6 +5,7 @@ import { UISettings } from '@baseapp-frontend/design-system/styles/web' import { ToolbarProps as MuiToolbarProps } from '@mui/material' import { AccountMenuProps } from '../Header/AccountMenu/types' +import { PartialLogoProps } from '../Header/types' import { NavigationData } from '../types' export interface NavigationLayoutProps extends PropsWithChildren { @@ -12,6 +13,7 @@ export interface NavigationLayoutProps extends PropsWithChildren { settings: UISettings setSettings: (newSettings: Partial<UISettings>) => void LogoIcon?: React.FC + LogoProps?: PartialLogoProps AccountMenu?: FC<AccountMenuProps> AccountMenuProps?: Partial<AccountMenuProps> ToolbarProps?: MuiToolbarProps diff --git a/packages/components/package.json b/packages/components/package.json index 99cd687f..1b550633 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/components", "description": "BaseApp components modules such as comments, notifications, messages, and more.", - "version": "1.0.24", + "version": "1.0.25", "sideEffects": false, "scripts": { "babel:transpile": "babel modules -d tmp-babel --extensions .ts,.tsx --ignore '**/__tests__/**','**/__storybook__/**'", From cdd9f60232585e5d18d55be44a16cbbeb1cfe0e8 Mon Sep 17 00:00:00 2001 From: Philipp Schmitt <ps2@tsl.io> Date: Fri, 14 Mar 2025 15:57:38 +0100 Subject: [PATCH 2/2] FEN-168 Move PartialLogoProps --- packages/components/modules/navigations/web/Header/types.ts | 4 +--- packages/components/modules/navigations/web/NavMini/types.ts | 2 +- .../components/modules/navigations/web/NavVertical/types.ts | 2 +- .../modules/navigations/web/NavigationLayout/types.ts | 2 +- packages/design-system/components/web/logos/Logo/types.ts | 2 ++ 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/components/modules/navigations/web/Header/types.ts b/packages/components/modules/navigations/web/Header/types.ts index a8b21df3..f1baea3a 100644 --- a/packages/components/modules/navigations/web/Header/types.ts +++ b/packages/components/modules/navigations/web/Header/types.ts @@ -1,6 +1,6 @@ import { FC, PropsWithChildren } from 'react' -import { LogoProps } from '@baseapp-frontend/design-system/components/web/logos' +import { PartialLogoProps } from '@baseapp-frontend/design-system/components/web/logos' import { ThemeLayout, UISettings } from '@baseapp-frontend/design-system/styles/web' import { AppBarProps, ToolbarProps as MuiToolbarProps } from '@mui/material' @@ -11,8 +11,6 @@ export interface CustomAppBarProps extends AppBarProps { themeLayout: ThemeLayout } -export type PartialLogoProps = Omit<LogoProps, 'ref' | 'children'> - export interface HeaderProps extends PropsWithChildren { settings: UISettings onOpenNav?: VoidFunction diff --git a/packages/components/modules/navigations/web/NavMini/types.ts b/packages/components/modules/navigations/web/NavMini/types.ts index e8833ce8..6ceb9a59 100644 --- a/packages/components/modules/navigations/web/NavMini/types.ts +++ b/packages/components/modules/navigations/web/NavMini/types.ts @@ -1,6 +1,6 @@ +import { PartialLogoProps } from '@baseapp-frontend/design-system/components/web/logos' import { UISettings } from '@baseapp-frontend/design-system/styles/web' -import { PartialLogoProps } from '../Header/types' import { NavigationData } from '../types' export interface NavMiniProps { diff --git a/packages/components/modules/navigations/web/NavVertical/types.ts b/packages/components/modules/navigations/web/NavVertical/types.ts index 52452427..a624f3e2 100644 --- a/packages/components/modules/navigations/web/NavVertical/types.ts +++ b/packages/components/modules/navigations/web/NavVertical/types.ts @@ -1,6 +1,6 @@ +import { PartialLogoProps } from '@baseapp-frontend/design-system/components/web/logos' import { UISettings } from '@baseapp-frontend/design-system/styles/web' -import { PartialLogoProps } from '../Header/types' import { NavigationData } from '../types' export interface NavVerticalProps { diff --git a/packages/components/modules/navigations/web/NavigationLayout/types.ts b/packages/components/modules/navigations/web/NavigationLayout/types.ts index ee103409..595a854b 100644 --- a/packages/components/modules/navigations/web/NavigationLayout/types.ts +++ b/packages/components/modules/navigations/web/NavigationLayout/types.ts @@ -1,11 +1,11 @@ import { FC, PropsWithChildren } from 'react' +import { PartialLogoProps } from '@baseapp-frontend/design-system/components/web/logos' import { UISettings } from '@baseapp-frontend/design-system/styles/web' import { ToolbarProps as MuiToolbarProps } from '@mui/material' import { AccountMenuProps } from '../Header/AccountMenu/types' -import { PartialLogoProps } from '../Header/types' import { NavigationData } from '../types' export interface NavigationLayoutProps extends PropsWithChildren { diff --git a/packages/design-system/components/web/logos/Logo/types.ts b/packages/design-system/components/web/logos/Logo/types.ts index 353e451d..4ba91f3e 100644 --- a/packages/design-system/components/web/logos/Logo/types.ts +++ b/packages/design-system/components/web/logos/Logo/types.ts @@ -4,3 +4,5 @@ export interface LogoProps extends BoxProps { children: React.ReactNode disabledLink?: boolean } + +export type PartialLogoProps = Omit<LogoProps, 'ref' | 'children'>