В Storybook декораторы - это способ обеспечения произвольных компонентов-оберток для историй. Они могут быть использованы для обертывания историй в "декораторы" (то есть контекст компонента), предоставления данных и создания или изменения поведения каким-то образом.
Из предоставленного файла preview.ts видно, что были попытки использовать декоратор (styleDecorator). Однако использование, похоже, неверное.
Вот исправленный способ использования декоратора:
import type { Preview } from '@storybook/react';
import { styleDecorator } from '../../src/shared/config/storybook/styleDecorator/styleDecorator';
const preview: Preview = {
parameters: {
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
},
decorators: [(Story) => (
<styleDecorator>
<Story />
</styleDecorator>
)],
}
export default preview;
В этой исправленной версии Story отображается как дочерний элемент styleDecorator, предполагая, что styleDecorator - это компонент React, который применяет желаемые стили.
Если styleDecorator - это функция, которая возвращает компонент React, код будет выглядеть так:
decorators: [(Story) => {
const DecoratorComponent = styleDecorator();
return <DecoratorComponent><Story /></DecoratorComponent>
}],
Убедись, что styleDecorator правильно определён и экспортирован из указанного пути файла.
Помните, что декоратор, определенный в preview.ts, будет применен ко всем историям в вашем Storybook. Если вы хотите применить декоратор к определенным историям, вы должны определить его в конкретном файле истории.
Не забудь заменить styleDecorator на реальную реализацию вашего декоратора. styleDecorator должен предоставлять глобальные стили, которые хочешь применить