@andersundsehr/storybook-typo3
Version:
The one and only Storybook Renderer for TYPO3 Fluid Components
30 lines (29 loc) • 1.02 kB
JavaScript
import { SNIPPET_RENDERED, SourceType } from 'storybook/internal/docs-tools';
import { addons, useEffect } from 'storybook/preview-api';
import { convertComponentToSource } from './functions/convertComponentToSource';
import { error } from './functions/error';
const sourceDecorator = (storyFn, storyContext) => {
useEffect(() => {
const { id, args, component } = storyContext;
if (!component) {
error('No component found in story context. This decorator requires a Fluid component to render.', 4123764578913);
}
const source = convertComponentToSource(component, args);
addons.getChannel().emit(SNIPPET_RENDERED, { id, args, source });
});
return storyFn();
};
export const tags = ['autodocs'];
export const decorators = [sourceDecorator];
export const parameters = {
docs: {
story: {
inline: true,
},
codePanel: true,
source: {
type: SourceType.DYNAMIC,
},
toc: true,
},
};