wix-storybook-utils
Version:
Utilities for automated component documentation within Storybook
60 lines • 2.86 kB
JavaScript
;
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