diff --git a/.storybook/main.ts b/.storybook/main.ts index d7490bec..233fe09d 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -3,7 +3,6 @@ import { StorybookConfig } from "@storybook/react-vite"; const config: StorybookConfig = { stories: ["../lib/components/**/*.stories.@(ts|tsx)", "../lib/stories/**/*.stories.@(ts|tsx)"], addons: [ - "@storybook/addon-onboarding", "@storybook/addon-links", "@storybook/addon-essentials", "@storybook/addon-themes", diff --git a/lib/components/ContextMenu/ContextMenu.tsx b/lib/components/ContextMenu/ContextMenu.tsx index d1ef9c63..1e5547fe 100644 --- a/lib/components/ContextMenu/ContextMenu.tsx +++ b/lib/components/ContextMenu/ContextMenu.tsx @@ -1,6 +1,6 @@ 'use client'; import cx from 'classnames'; -import { useRef } from 'react'; +import { useMemo, useRef } from 'react'; import { DropdownBase, type DropdownPlacement, IconButton, type MenuItemProps } from '../'; import { type MenuItemGroups, MenuItems } from '../'; import { useClickOutside } from '../../hooks'; @@ -32,6 +32,18 @@ export const ContextMenu = ({ const onToggle = () => toggleId(id); const expanded = currentId === id; + const itemsWithToggle = useMemo(() => { + return items.map((item) => { + return { + ...item, + onClick: () => { + item.onClick?.(); + closeAll(); + }, + }; + }); + }, [items, closeAll]); + return (
- +
); diff --git a/lib/components/GlobalMenu/GlobalMenu.tsx b/lib/components/GlobalMenu/GlobalMenu.tsx index e9bfddf6..6780cfcd 100644 --- a/lib/components/GlobalMenu/GlobalMenu.tsx +++ b/lib/components/GlobalMenu/GlobalMenu.tsx @@ -1,5 +1,5 @@ 'use client'; -import { useState } from 'react'; +import { useMemo, useState } from 'react'; import { Menu, type MenuItemGroups, type MenuItemProps, MenuListItem } from '../Menu'; import { type Account, AccountButton } from './AccountButton'; import { AccountMenu, type AccountMenuProps } from './AccountMenu'; @@ -17,6 +17,7 @@ export interface GlobalMenuProps extends AccountMenuProps { className?: string; currentAccount?: Account; onSelectAccount?: (id: string) => void; + onClose?: () => void; } export const GlobalMenu = ({ @@ -29,6 +30,7 @@ export const GlobalMenu = ({ backLabel = 'Back', currentAccount, onSelectAccount, + onClose, logoutButton, }: GlobalMenuProps) => { const [selectingAccount, setSelectingAccount] = useState(false); @@ -42,6 +44,18 @@ export const GlobalMenu = ({ onSelectAccount?.(id); }; + const itemsWithToggle = useMemo(() => { + return items.map((item) => { + return { + ...item, + onClick: () => { + item.onClick?.(); + onClose?.(); + }, + }; + }); + }, [items, onClose]); + if (selectingAccount) { return ( @@ -72,7 +86,7 @@ export const GlobalMenu = ({ /> - + {logoutButton && ( <> @@ -87,7 +101,7 @@ export const GlobalMenu = ({ return ( - + ); }; diff --git a/lib/components/Header/Header.tsx b/lib/components/Header/Header.tsx index 92c9b96e..0e094fc8 100644 --- a/lib/components/Header/Header.tsx +++ b/lib/components/Header/Header.tsx @@ -52,8 +52,8 @@ export const Header = ({ search, menu, currentAccount, logo = {}, badge }: Heade label={menu?.menuLabel} /> {menu && ( - - + + )} diff --git a/package.json b/package.json index a103bbd7..f11920e4 100644 --- a/package.json +++ b/package.json @@ -3,16 +3,10 @@ "version": "0.10.1", "main": "dist/index.js", "types": "dist/index.d.ts", - "files": [ - "dist", - "!dist/stories", - "!dist/examples" - ], + "files": ["dist", "!dist/stories", "!dist/examples"], "type": "module", "description": "Reusable react components", - "sideEffects": [ - "*.css" - ], + "sideEffects": ["*.css"], "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "storybook": "storybook dev -p 6006", @@ -41,7 +35,6 @@ "@storybook/addon-essentials": "^8.4.4", "@storybook/addon-interactions": "^8.4.4", "@storybook/addon-links": "^8.4.4", - "@storybook/addon-onboarding": "^8.4.4", "@storybook/addon-themes": "^8.4.4", "@storybook/blocks": "^8.4.4", "@storybook/react": "^8.4.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4601f523..55b2e571 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,9 +39,6 @@ importers: '@storybook/addon-links': specifier: ^8.4.4 version: 8.4.4(react@18.3.1)(storybook@8.4.4) - '@storybook/addon-onboarding': - specifier: ^8.4.4 - version: 8.4.4(react@18.3.1)(storybook@8.4.4) '@storybook/addon-themes': specifier: ^8.4.4 version: 8.4.4(storybook@8.4.4) @@ -816,11 +813,6 @@ packages: peerDependencies: storybook: ^8.4.4 - '@storybook/addon-onboarding@8.4.4': - resolution: {integrity: sha512-LCCQez5xzFQ6wunXnpNjgiuqh8SYPd2AgrRPDKo5Yf1QyXnT4xSFjZr/4QFyzPsOBnpsq8MlNPS4l063Y+Qkgg==} - peerDependencies: - storybook: ^8.4.4 - '@storybook/addon-outline@8.4.4': resolution: {integrity: sha512-CVS1dm6BNUWKGrJj9E1ThBp5Khe6Yw+Hhz6OFxrPZfoTr6RstwoTmvSpKjDUCn8zj6ujoORdiQUh1FsHOxAPBg==} peerDependencies: @@ -2951,13 +2943,6 @@ snapshots: storybook: 8.4.4 tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.4.4(react@18.3.1)(storybook@8.4.4)': - dependencies: - react-confetti: 6.1.0(react@18.3.1) - storybook: 8.4.4 - transitivePeerDependencies: - - react - '@storybook/addon-outline@8.4.4(storybook@8.4.4)': dependencies: '@storybook/global': 5.0.0