creevey
Version:
Cross-browser screenshot testing tool for Storybook with fancy UI Runner
41 lines • 1.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const manager_api_1 = require("@storybook/manager-api");
const Addon_js_1 = require("./components/Addon.js");
const Tools_js_1 = require("./components/Tools.js");
const controller_js_1 = require("./controller.js");
// TODO Take api from `import { useGlobals, useStorybookApi } from '@storybook/manager-api';`
manager_api_1.addons.register(controller_js_1.ADDON_ID, (api) => {
void registerCreeveyPanels(api);
});
async function registerCreeveyPanels(storybookApi) {
const controller = new controller_js_1.CreeveyController(storybookApi);
manager_api_1.addons.add(`${controller_js_1.ADDON_ID}/panel/run`, {
title: `Creevey/Run`,
match: ({ viewMode }) => !!(viewMode && /^story$/.exec(viewMode)),
type: manager_api_1.types.TOOL,
render: () => react_1.default.createElement(Tools_js_1.Tools, { controller }),
});
await controller.initAll();
const browsers = controller.getBrowsers();
browsers.forEach((browser) => {
const panelId = `${controller_js_1.ADDON_ID}/panel/${browser}`;
const title = controller.getTabTitle(browser);
manager_api_1.addons.add(panelId, {
title,
type: manager_api_1.types.PANEL,
paramKey: browser,
// NOTE key = PANEL_ID needs to correct render button in addons panel
render: ({ active }) => react_1.default.createElement(Addon_js_1.Addon, {
active,
controller,
browser,
}),
});
});
}
//# sourceMappingURL=manager.js.map