|
| 1 | +import { addParameters, configure, addDecorator } from "@storybook/react"; |
| 2 | +import { MINIMAL_VIEWPORTS } from "@storybook/addon-viewport"; |
| 3 | +import React, { useState, useCallback } from "react"; |
| 4 | +import { ThemeProvider } from "styled-components"; |
| 5 | +import theme from "../src/components/Theme"; |
| 6 | +import GlobalStyle from "../src/components/GlobalStyle"; |
| 7 | +import StoryRouter from "storybook-react-router"; |
| 8 | +import { ModalProvider } from "../src/hooks"; |
| 9 | + |
| 10 | +// automatically import all files ending in *.stories.js |
| 11 | +configure(require.context("../src/components", true, /\.stories\.js$/), module); |
| 12 | + |
| 13 | +addDecorator((storyFn) => ( |
| 14 | + <ThemeProvider theme={theme}> |
| 15 | + <GlobalStyle /> |
| 16 | + {storyFn()} |
| 17 | + </ThemeProvider> |
| 18 | +)); |
| 19 | + |
| 20 | +addDecorator((storyFn) => { |
| 21 | + const [showModal, setShowModal] = useState(false); |
| 22 | + |
| 23 | + const modals = { |
| 24 | + modal: { |
| 25 | + show: showModal, |
| 26 | + onOpen: () => setShowModal(true), |
| 27 | + onClose: useCallback(() => setShowModal(false), []), |
| 28 | + }, |
| 29 | + deleteBlogs: { |
| 30 | + show: showModal, |
| 31 | + onOpen: () => setShowModal(true), |
| 32 | + onClose: useCallback(() => setShowModal(false), []), |
| 33 | + }, |
| 34 | + }; |
| 35 | + return <ModalProvider value={modals}>{storyFn()}</ModalProvider>; |
| 36 | +}); |
| 37 | + |
| 38 | +addDecorator(StoryRouter()); |
| 39 | + |
| 40 | +addParameters({ |
| 41 | + viewport: { |
| 42 | + viewports: MINIMAL_VIEWPORTS, |
| 43 | + }, |
| 44 | +}); |
0 commit comments