From 6035fb7fba15a901887aa52b85f3d7cb04e1e69d Mon Sep 17 00:00:00 2001 From: Steve Dodier-Lazaro Date: Fri, 26 Jun 2026 12:27:28 +0200 Subject: [PATCH] UI: Hide onboarding menu with feature flag --- code/core/src/core-server/presets/common-preset.ts | 1 + .../manager/components/sidebar/Sidebar.stories.tsx | 7 +++++-- code/core/src/manager/container/Menu.tsx | 5 ++++- code/core/src/manager/settings/index.tsx | 7 +++++-- code/core/src/types/modules/core-common.ts | 7 +++++++ docs/api/main-config/main-config-features.mdx | 11 +++++++++++ 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/code/core/src/core-server/presets/common-preset.ts b/code/core/src/core-server/presets/common-preset.ts index b2af76d9f136..c6f25c3e3c93 100644 --- a/code/core/src/core-server/presets/common-preset.ts +++ b/code/core/src/core-server/presets/common-preset.ts @@ -233,6 +233,7 @@ export const features: PresetProperty<'features'> = async (existing) => ({ legacyDecoratorFileOrder: false, measure: true, outline: true, + menuOnboardingChecklist: true, sidebarOnboardingChecklist: true, viewport: true, }); diff --git a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx index 4589a3a9114e..da6c4c08ac43 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx @@ -15,12 +15,12 @@ import type { IndexHash } from 'storybook/manager-api'; import { ManagerContext } from 'storybook/manager-api'; import { expect, fn, userEvent, waitFor, within } from 'storybook/test'; +import { internal_fullStatusStore as internal_ctaStatusStore } from 'storybook/manager-api'; import { initialState } from '../../../shared/checklist-store/checklistData.state.ts'; import { internal_fullStatusStore, internal_universalChecklistStore, } from '../../manager-stores.mock.ts'; -import { internal_fullStatusStore as internal_ctaStatusStore } from 'storybook/manager-api'; import { LayoutProvider } from '../layout/LayoutProvider.tsx'; import { standardData as standardHeaderData } from './Heading.stories.tsx'; import { DEFAULT_REF_ID, Sidebar } from './Sidebar.tsx'; @@ -228,7 +228,10 @@ export const SimpleNoChecklist: Story = { }, beforeEach: () => { const features = global.FEATURES; - global.FEATURES = { ...features, sidebarOnboardingChecklist: false }; + global.FEATURES = { + ...features, + sidebarOnboardingChecklist: false, + }; return () => { global.FEATURES = features; }; diff --git a/code/core/src/manager/container/Menu.tsx b/code/core/src/manager/container/Menu.tsx index 0553ed16a81f..5274ca688766 100644 --- a/code/core/src/manager/container/Menu.tsx +++ b/code/core/src/manager/container/Menu.tsx @@ -218,7 +218,10 @@ export const useMenu = ({ [ [ about, - ...(global.CONFIG_TYPE === 'DEVELOPMENT' ? [guide] : []), + ...(global.CONFIG_TYPE === 'DEVELOPMENT' && + global.FEATURES?.menuOnboardingChecklist !== false + ? [guide] + : []), ...(enableShortcuts ? [shortcuts] : []), ], [sidebarToggle, toolbarToogle, addonsToggle, up, down, prev, next, collapse], diff --git a/code/core/src/manager/settings/index.tsx b/code/core/src/manager/settings/index.tsx index 73da491326ee..a468ebe9ccd0 100644 --- a/code/core/src/manager/settings/index.tsx +++ b/code/core/src/manager/settings/index.tsx @@ -3,8 +3,8 @@ import React, { useMemo } from 'react'; import { Button, ScrollArea, TabsView } from 'storybook/internal/components'; import { Location, Route } from 'storybook/internal/router'; -import { Addon_TypesEnum } from 'storybook/internal/types'; import type { Addon_PageType } from 'storybook/internal/types'; +import { Addon_TypesEnum } from 'storybook/internal/types'; import { global } from '@storybook/global'; import { CloseIcon } from '@storybook/icons'; @@ -81,7 +81,10 @@ const Pages: FC<{ }, ]; - if (global.CONFIG_TYPE === 'DEVELOPMENT') { + if ( + global.CONFIG_TYPE === 'DEVELOPMENT' && + global.FEATURES?.menuOnboardingChecklist !== false + ) { tabsToInclude.push({ id: 'guide', title: 'Guide', diff --git a/code/core/src/types/modules/core-common.ts b/code/core/src/types/modules/core-common.ts index 6c933261b3ce..e37ee57bfe64 100644 --- a/code/core/src/types/modules/core-common.ts +++ b/code/core/src/types/modules/core-common.ts @@ -537,6 +537,13 @@ export interface StorybookConfigRaw { */ sidebarOnboardingChecklist?: boolean; + /** + * Enable the onboarding guide page in the menu + * + * @default true + */ + menuOnboardingChecklist?: boolean; + /** * @temporary This feature flag is a migration assistant, and is scheduled to be removed. * diff --git a/docs/api/main-config/main-config-features.mdx b/docs/api/main-config/main-config-features.mdx index b898e7a3e8cb..d0997e362410 100644 --- a/docs/api/main-config/main-config-features.mdx +++ b/docs/api/main-config/main-config-features.mdx @@ -28,6 +28,7 @@ Type: measure?: boolean; outline?: boolean; sidebarOnboardingChecklist?: boolean; + menuOnboardingChecklist?: boolean; toolbars?: boolean; viewport?: boolean; } @@ -53,6 +54,7 @@ Type: measure?: boolean; outline?: boolean; sidebarOnboardingChecklist?: boolean; + menuOnboardingChecklist?: boolean; toolbars?: boolean; viewport?: boolean; } @@ -77,6 +79,7 @@ Type: measure?: boolean; outline?: boolean; sidebarOnboardingChecklist?: boolean; + menuOnboardingChecklist?: boolean; toolbars?: boolean; viewport?: boolean; } @@ -234,6 +237,14 @@ Default: `true` Enable the [Measure](../../essentials/measure-and-outline.mdx#measure) feature. +## `menuOnboardingChecklist` + +Type: `boolean` + +Default: `true` + +Enable a link to the onboarding guide in the menu. + ## `outline` Type: `boolean`