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..6cd63e63da 100644 --- a/packages/react-native/src/preview.ts +++ b/packages/react-native/src/preview.ts @@ -2,7 +2,7 @@ import { Platform } from 'react-native'; 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.