UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

81 lines 3.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var story_section_1 = require("../typings/story-section"); var merge_1 = tslib_1.__importDefault(require("lodash/merge")); var view_1 = require("../Sections/view"); var omit_1 = tslib_1.__importDefault(require("../AutoExample/utils/omit")); var create_default_sections_1 = require("../Sections/create-default-sections"); var story_page_1 = require("./../Sections/views/story-page"); var useStorybokBuilderApi_1 = require("./hooks/useStorybokBuilderApi"); var prepareMetadata = function (props) { return (tslib_1.__assign(tslib_1.__assign({}, props.metadata), { displayName: props.displayName || props.metadata.displayName, props: (0, omit_1.default)(props.metadata.props)(function (prop) { return props.hiddenProps.includes(prop); }) })); }; var makeSections = function (props) { return [ { when: props.loading && props.enabled, make: function () { return (0, story_page_1.storyPage)({ type: story_section_1.SectionType.StoryPage, content: { description: '', do: ['do'], dont: ['dont'], }, demo: '<div></div>', loading: props.loading, }, props); }, }, { when: props.story && props.story.content, make: function () { return (0, story_page_1.storyPage)({ type: story_section_1.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 (0, merge_1.default)((0, create_default_sections_1.createDefaultSections)(props), props.sections); }, }, { when: props.sections && !props.componentPath, make: function () { return props.sections; }, }, { // default case when: true, make: function () { return (0, create_default_sections_1.createDefaultSections)(props); }, }, ] .find(function (_a) { var when = _a.when; return when; }) .make(); }; var StoryPage = function (props) { React.useEffect(function () { window.sessionStorage.clear(); }, []); var _a = (0, useStorybokBuilderApi_1.useStorybookBuilderApi)({ library: props.config.moduleName, storyName: props.storyName, }), loading = _a.loading, response = _a.response, enabled = _a.enabled; return (React.createElement(view_1.View, tslib_1.__assign({}, tslib_1.__assign(tslib_1.__assign({}, props), { metadata: prepareMetadata(props), sections: makeSections(tslib_1.__assign(tslib_1.__assign({ loading: loading, enabled: !!enabled }, props), { story: tslib_1.__assign(tslib_1.__assign({}, props.story), (response && response)) })) })))); }; StoryPage.defaultProps = { config: { importFormat: '', moduleName: '', repoBaseURL: '', }, hiddenProps: [], }; exports.default = StoryPage; //# sourceMappingURL=index.js.map