UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

79 lines 3.07 kB
import { __assign } from "tslib"; import * as React from 'react'; import { SectionType } from '../typings/story-section'; import merge from 'lodash/merge'; import { View as SectionsView } from '../Sections/view'; import omit from '../AutoExample/utils/omit'; import { createDefaultSections } from '../Sections/create-default-sections'; import { storyPage } from './../Sections/views/story-page'; import { useStorybookBuilderApi } from './hooks/useStorybokBuilderApi'; var prepareMetadata = function (props) { return (__assign(__assign({}, props.metadata), { displayName: props.displayName || props.metadata.displayName, props: omit(props.metadata.props)(function (prop) { return props.hiddenProps.includes(prop); }) })); }; var makeSections = function (props) { return [ { when: props.loading && props.enabled, make: function () { return storyPage({ type: SectionType.StoryPage, content: { description: '', do: ['do'], dont: ['dont'], }, demo: '<div></div>', loading: props.loading, }, props); }, }, { when: props.story && props.story.content, make: function () { return storyPage({ type: SectionType.StoryPage, content: props.story.content, examples: props.story.examples, demo: props.story.demo, tabs: props.story.tabs, }, props); }, }, { when: props.sections && props.componentPath, make: function () { return merge(createDefaultSections(props), props.sections); }, }, { when: props.sections && !props.componentPath, make: function () { return props.sections; }, }, { // default case when: true, make: function () { return createDefaultSections(props); }, }, ] .find(function (_a) { var when = _a.when; return when; }) .make(); }; var StoryPage = function (props) { React.useEffect(function () { window.sessionStorage.clear(); }, []); var _a = useStorybookBuilderApi({ library: props.config.moduleName, storyName: props.storyName, }), loading = _a.loading, response = _a.response, enabled = _a.enabled; return (React.createElement(SectionsView, __assign({}, __assign(__assign({}, props), { metadata: prepareMetadata(props), sections: makeSections(__assign(__assign({ loading: loading, enabled: !!enabled }, props), { story: __assign(__assign({}, props.story), (response && response)) })) })))); }; StoryPage.defaultProps = { config: { importFormat: '', moduleName: '', repoBaseURL: '', }, hiddenProps: [], }; export default StoryPage; //# sourceMappingURL=index.js.map