storybook-mirage
Version:
A Storybook addon to use and interact with a MirageJS server
52 lines (51 loc) • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Panel", {
enumerable: true,
get: function() {
return Panel;
}
});
const _jsxruntime = require("react/jsx-runtime");
const _managerapi = require("storybook/manager-api");
const _components = require("storybook/internal/components");
const _constants = require("./constants");
const _PanelContent = require("./components/PanelContent");
const Panel = (props)=>{
// https://storybook.js.org/docs/react/addons/addons-api#useaddonstate
const [results, setState] = (0, _managerapi.useAddonState)(_constants.ADDON_ID, {
requests: [],
unhandled: [],
errors: []
});
// https://storybook.js.org/docs/react/addons/addons-api#usechannel
const emit = (0, _managerapi.useChannel)({
[_constants.EVENTS.REQUEST]: (event)=>{
setState({
...results,
requests: results.requests.concat(event)
});
},
[_constants.EVENTS.UNHANDLED]: (event)=>{
setState({
...results,
unhandled: results.unhandled.concat(event)
});
},
[_constants.EVENTS.ERROR]: (event)=>{
setState({
...results,
errors: results.errors.concat(event)
});
}
});
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_components.AddonPanel, {
...props,
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_PanelContent.PanelContent, {
results: results,
onSetResponse: (values)=>emit(_constants.EVENTS.SET, values)
})
});
};