From e413748285cd0a4aa8602e382cf2e85095a891a1 Mon Sep 17 00:00:00 2001 From: siriwatknp Date: Tue, 13 Aug 2024 13:07:04 +0700 Subject: [PATCH] fix(storybook): only display on story and update selected logic --- .storybook/decorators/BlockPicker.tsx | 31 +++++++++++++++++++++------ .storybook/manager.tsx | 3 +++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.storybook/decorators/BlockPicker.tsx b/.storybook/decorators/BlockPicker.tsx index c0b446a4..6db7c7d8 100644 --- a/.storybook/decorators/BlockPicker.tsx +++ b/.storybook/decorators/BlockPicker.tsx @@ -25,22 +25,34 @@ export const BlockPicker = memo(function MyAddonSelector() { const [, copy] = useCopyToClipboard(); const [copied, setCopied] = React.useState(false); const timeoutRef = React.useRef(); - const isAdded = blocks.some((block) => block.id === storybookState.storyId); + const isAdded = blocks.some( + (block) => + block.id.replace(/--.*/, "") === + storybookState.storyId.replace(/--.*/, ""), + ); return ( )} {blocks.length > 0 && ( @@ -85,7 +97,7 @@ export const BlockPicker = memo(function MyAddonSelector() { setAnchorEl(event.currentTarget as HTMLElement); }} > - View Blocks + View Blocks ({blocks.length}) { ( {blocks.map((block) => ( { storybookApi.selectStory(block.id); setAnchorEl(null); diff --git a/.storybook/manager.tsx b/.storybook/manager.tsx index a28fb824..6b7eaf2a 100644 --- a/.storybook/manager.tsx +++ b/.storybook/manager.tsx @@ -51,6 +51,7 @@ addons.register("block-usage", () => { addons.add("block-usage/toolbar", { title: "Block Usage", type: types.TOOL, + match: ({ viewMode }) => viewMode === "story", render: BlockUsage as unknown as () => React.ReactElement, }); }); @@ -59,6 +60,7 @@ addons.register("cli-toolbar", () => { addons.add("cli-toolbar/toolbar", { title: "CLI Toolbar", type: types.TOOL, + match: ({ viewMode }) => viewMode === "story", render: BlockPicker as unknown as () => React.ReactElement, }); }); @@ -67,6 +69,7 @@ addons.register("contributor", () => { addons.add("contributor/toolbar", { title: "Author", type: types.TOOL, + match: ({ viewMode }) => viewMode === "story", render: Tool as unknown as () => React.ReactElement, }); });