.storybook/preview.tsx
import { addDecorator, DecoratorFn } from '@storybook/react';
/** Adds react-router context */
const routerDecorator: DecoratorFn = (Story, context) => {
const router = context.parameters.router;
return (
<MemoryRouter initialEntries={router?.initialEntries || ['/']} initialIndex={router?.initialIndex ?? 0}>
<Story {...context} />
</MemoryRouter>
);
};
addDecorator(routerDecorator)storybook.d.ts
import "@storybook/addons";
declare module '@storybook/addons' {
export interface Parameters {
router?: {
/* Initial history state */
initialEntries?: string[];
/* Initial position in state */
initialIndex?: number;
};
}
}Component.fixture.tsx
export const MyStory: Story = () => <Component />
Story.parameters = {
router: {
initialEntries: ['/']
}
}