Website-Suche

reactjs - React Hooks in globalem Decorator für Storybook aufrufen


Ich möchte einen benutzerdefinierten React-Hook für alle Stories aufrufen, bin mir jedoch nicht sicher, wo ich ihn deklarieren soll. Die benutzerdefinierten Hooks, die ich aufrufen möchte, müssen im Context-Provider sein.

Gibt es Möglichkeiten, einen Kontextanbieter und benutzerdefinierte Hooks für alle Stories zu deklarieren?

import React from 'react';
import { useCustomHooks } from './custom';
import { ThemeProvider } from 'styled-components';

export const decorators = [
  (Story) => (
    useCustomHooks() // I wanna call custom hooks here but not working because not in provider
    <ThemeProvider theme="default">
      <Story />
    </ThemeProvider>
  ),
];

Antwort #1

Ja, in .storybook/preview.js:

import { addDecorator } from '@storybook/react';

addDecorator((Story) =>
  <MotionLazyContainer>
    <ThemeProvider>
      <Story />
    </ThemeProvider>
  </MotionLazyContainer>
);