diff --git a/code/.storybook/main.ts b/code/.storybook/main.ts index ab8af9af8f4a..513fde263a21 100644 --- a/code/.storybook/main.ts +++ b/code/.storybook/main.ts @@ -96,6 +96,7 @@ const config: StorybookConfig = { addons: [ '@storybook/addon-themes', '@storybook/addon-essentials', + '@storybook/addon-interactions', '@storybook/addon-storysource', '@storybook/addon-designs', '@storybook/experimental-addon-test', diff --git a/code/addons/interactions/src/preset.ts b/code/addons/interactions/src/preset.ts index 2e3dae624042..b58832d5e36e 100644 --- a/code/addons/interactions/src/preset.ts +++ b/code/addons/interactions/src/preset.ts @@ -18,6 +18,3 @@ export const checkActionsLoaded = (configDir: string) => { getConfig: (configFile) => serverRequire(configFile), }); }; - -// This annotation is read by addon-test, so it can throw an error if both addons are used -export const ADDON_INTERACTIONS_IN_USE = true; diff --git a/code/addons/test/src/preset.ts b/code/addons/test/src/preset.ts index 1e0ba3a16b77..dc8bbfd88b2f 100644 --- a/code/addons/test/src/preset.ts +++ b/code/addons/test/src/preset.ts @@ -9,7 +9,7 @@ import { TESTING_MODULE_WATCH_MODE_REQUEST, } from 'storybook/internal/core-events'; import { oneWayHash, telemetry } from 'storybook/internal/telemetry'; -import type { Options, PresetProperty, StoryId } from 'storybook/internal/types'; +import type { Options, StoryId } from 'storybook/internal/types'; import picocolors from 'picocolors'; import { dedent } from 'ts-dedent'; @@ -99,34 +99,3 @@ export const experimental_serverChannel = async (channel: Channel, options: Opti return channel; }; - -export const previewAnnotations: PresetProperty<'previewAnnotations'> = async ( - entry = [], - options -) => { - checkActionsLoaded(options.configDir); - return entry; -}; - -export const managerEntries: PresetProperty<'managerEntries'> = async (entry = [], options) => { - // Throw an error when addon-interactions is used. - // This is done by reading an annotation defined in addon-interactions, which although not ideal, - // is a way to handle addon conflict without having to worry about the order of which they are registered - const annotation = await options.presets.apply('ADDON_INTERACTIONS_IN_USE', false); - if (annotation) { - // eslint-disable-next-line local-rules/no-uncategorized-errors - const error = new Error( - dedent` - You have both addon-interactions and addon-test enabled, which is not allowed. - - addon-test is a replacement for addon-interactions, please uninstall and remove addon-interactions from the addons list in your main config at ${options.configDir}. - ` - ); - error.name = 'AddonConflictError'; - - throw error; - } - - // for whatever reason seems like the return type of managerEntries is not correct (it expects never instead of string[]) - return entry as never; -};