diff --git a/code/renderers/react/src/csf-factories.test.tsx b/code/renderers/react/src/csf-factories.test.tsx index 03b0de64da0a..f0b475d71785 100644 --- a/code/renderers/react/src/csf-factories.test.tsx +++ b/code/renderers/react/src/csf-factories.test.tsx @@ -384,3 +384,20 @@ describe('Composed getters', () => { expect(renderSpy).toHaveBeenCalled(); }); }); + +it('meta.input also contains play', () => { + const meta = preview.meta({ + /** Title, component, etc... */ + play: async ({ canvas }) => { + /** Do some common interactions */ + }, + }); + + const ExtendedInteractionsStory = meta.story({ + play: async ({ canvas, ...rest }) => { + await meta.input.play?.({ canvas, ...rest }); + + /** Do some extra interactions */ + }, + }); +}); diff --git a/code/renderers/react/src/preview.tsx b/code/renderers/react/src/preview.tsx index ebcb0ffb960e..44207e7e0c95 100644 --- a/code/renderers/react/src/preview.tsx +++ b/code/renderers/react/src/preview.tsx @@ -76,7 +76,19 @@ export interface ReactPreview extends Preview>> >; }, - { args: Partial extends TMetaArgs ? {} : TMetaArgs } + Omit< + ComponentAnnotations< + ReactTypes & + T & { + args: Simplify< + TArgs & Simplify>> + >; + } + >, + 'args' + > & { + args: Partial extends TMetaArgs ? {} : TMetaArgs; + } >; }