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