UNPKG

wix-storybook-utils

Version:

Utilities for automated component documentation within Storybook

60 lines 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useStorybookBuilderApi = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var transformStoryStructure_1 = require("./transformStoryStructure"); var getCustomQueryParams_1 = require("./getCustomQueryParams"); var baseUrl = 'https://mykolass.wixsite.com/storybook-builder/_functions'; var buildEndpoint = function (_a) { var library = _a.library, storyName = _a.storyName, previewId = _a.previewId; if (previewId) { return "".concat(baseUrl, "/getPreview?id=").concat(previewId); } return "".concat(baseUrl, "/getStory?storyName=").concat(storyName, "&library=").concat(library); }; function fetchStory(_a) { var library = _a.library, storyName = _a.storyName, previewId = _a.previewId; return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, fetch(buildEndpoint({ library: library, storyName: storyName, previewId: previewId })) .then(function (res) { return res.json(); }) .then(function (res) { if (res.error) { return null; } return res.story.content; })]; }); }); } var useStorybookBuilderApi = function (_a) { var library = _a.library, storyName = _a.storyName; var _b = React.useState(true), loading = _b[0], setLoading = _b[1]; var _c = React.useState(null), data = _c[0], setData = _c[1]; var _d = (0, getCustomQueryParams_1.getCustomQueryParams)(storyName), previewId = _d.previewId, enabled = _d.enabled; React.useEffect(function () { if (enabled) { setLoading(true); fetchStory({ library: library, storyName: storyName, previewId: previewId }) .then(function (res) { setTimeout(function () { return setLoading(false); }, 150); setData(res); }) .catch(function (error) { setTimeout(function () { return setLoading(false); }, 100); console.error(error); }); } }, []); if (window.parent.window.STORYBOOK_CMS_DATA && !enabled) { var foundStory = window.parent.window.STORYBOOK_CMS_DATA.find(function (story) { return story.storyName === storyName; }); return { loading: false, response: foundStory ? (0, transformStoryStructure_1.transformData)(foundStory.content) : null, }; } return { loading: loading, response: data && (0, transformStoryStructure_1.transformData)(data), enabled: enabled }; }; exports.useStorybookBuilderApi = useStorybookBuilderApi; //# sourceMappingURL=useStorybookBuilderApi.js.map