From 747042d0619652d1f00e2a08608a1e5aa26b20e2 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 24 Jun 2026 09:55:24 +0200 Subject: [PATCH 1/2] fix: restore docgen auto argTypes via entry-preview-argtypes import `argTypesEnhancers` and `parameters.docs.extractArgTypes` are exported from `@storybook/react/entry-preview-argtypes`, not `entry-preview-docs`. The old import resolved to `undefined`, silently disabling docgen-based auto controls (only core value inference remained). Adds a regression test asserting both are wired, plus a patch changeset. Co-authored-by: Cursor --- .changeset/fix-docgen-argtypes-entry-point.md | 5 +++++ packages/react-native/src/preview.test.ts | 20 +++++++++++++++++++ packages/react-native/src/preview.ts | 6 +++++- 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-docgen-argtypes-entry-point.md create mode 100644 packages/react-native/src/preview.test.ts diff --git a/.changeset/fix-docgen-argtypes-entry-point.md b/.changeset/fix-docgen-argtypes-entry-point.md new file mode 100644 index 0000000000..760c3845a3 --- /dev/null +++ b/.changeset/fix-docgen-argtypes-entry-point.md @@ -0,0 +1,5 @@ +--- +"@storybook/react-native": patch +--- + +Fix docgen-based auto argTypes (controls) that were silently disabled. `preview.ts` imported `argTypesEnhancers` and `parameters.docs.extractArgTypes` from `@storybook/react/entry-preview-docs`, which does not export them, so both resolved to `undefined`. They are now imported from `@storybook/react/entry-preview-argtypes`, restoring auto-generated controls from component `__docgenInfo`. diff --git a/packages/react-native/src/preview.test.ts b/packages/react-native/src/preview.test.ts new file mode 100644 index 0000000000..ae3b080190 --- /dev/null +++ b/packages/react-native/src/preview.test.ts @@ -0,0 +1,20 @@ +import preview from './preview'; + +// Regression test for the entry-point bug where `argTypesEnhancers` and +// `parameters.docs.extractArgTypes` were imported from +// `@storybook/react/entry-preview-docs` — which does not export them, so both +// resolved to `undefined` and docgen-based auto argTypes were silently disabled. +// They are exported from `@storybook/react/entry-preview-argtypes`. +describe('preview docgen wiring', () => { + it('wires argTypesEnhancers from @storybook/react', () => { + expect(Array.isArray(preview.argTypesEnhancers)).toBe(true); + expect(preview.argTypesEnhancers?.length).toBeGreaterThan(0); + preview.argTypesEnhancers?.forEach((enhancer) => { + expect(typeof enhancer).toBe('function'); + }); + }); + + it('wires parameters.docs.extractArgTypes from @storybook/react', () => { + expect(typeof preview.parameters?.docs?.extractArgTypes).toBe('function'); + }); +}); diff --git a/packages/react-native/src/preview.ts b/packages/react-native/src/preview.ts index 633cd81822..fbaaa15ed5 100644 --- a/packages/react-native/src/preview.ts +++ b/packages/react-native/src/preview.ts @@ -1,8 +1,12 @@ import { Platform } from 'react-native'; +// `argTypesEnhancers` and `parameters.docs.extractArgTypes` are exported from the +// `entry-preview-argtypes` entry point, not `entry-preview-docs`. Importing them +// from `entry-preview-docs` resolves to `undefined`, which silently disables +// docgen-based auto argTypes (controls then only come from core value inference). import { parameters as reactParameters, argTypesEnhancers, -} from '@storybook/react/entry-preview-docs'; +} from '@storybook/react/entry-preview-argtypes'; import { type Preview } from '@storybook/react'; // Workaround for Reanimated globals not being available on web. From 341ff27f3e7a802b90419019b39dc797a557095f Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 25 Jun 2026 11:37:25 +0200 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Norbert de Langen --- packages/react-native/src/preview.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/react-native/src/preview.ts b/packages/react-native/src/preview.ts index fbaaa15ed5..6cd63e63da 100644 --- a/packages/react-native/src/preview.ts +++ b/packages/react-native/src/preview.ts @@ -1,8 +1,4 @@ import { Platform } from 'react-native'; -// `argTypesEnhancers` and `parameters.docs.extractArgTypes` are exported from the -// `entry-preview-argtypes` entry point, not `entry-preview-docs`. Importing them -// from `entry-preview-docs` resolves to `undefined`, which silently disables -// docgen-based auto argTypes (controls then only come from core value inference). import { parameters as reactParameters, argTypesEnhancers,