UNPKG

@storybook/preact

Version:

Storybook Preact renderer: Develop, document, and test UI components in isolation

53 lines (48 loc) 1.68 kB
import { __export } from "./chunk-4BE7D4DS.js"; // src/entry-preview.ts var entry_preview_exports = {}; __export(entry_preview_exports, { parameters: () => parameters, render: () => render2, renderToCanvas: () => renderToCanvas }); // src/render.tsx import * as preact from "preact"; import { dedent } from "ts-dedent"; var { h: h2 } = preact, render2 = (args, context) => { let { id, component: Component } = context; if (!Component) throw new Error( `Unable to render story ${id} as the component annotation is missing from the default export` ); return h2(Component, args); }, renderedStory; function preactRender(story, canvasElement) { preact.Fragment ? preact.render(story, canvasElement) : renderedStory = preact.render(story, canvasElement, renderedStory); } var StoryHarness = ({ showError, name, title, storyFn, canvasElement }) => { let content = preact.h(storyFn, null); return content || (showError({ title: `Expecting a Preact element from the story: "${name}" of "${title}".`, description: dedent` Did you forget to return the Preact element from the story? Use "() => (<MyComp/>)" or "() => { return <MyComp/>; }" when defining the story. ` }), null); }; function renderToCanvas({ storyFn, title, name, showMain, showError, forceRemount }, canvasElement) { forceRemount && preactRender(null, canvasElement), showMain(), preactRender( preact.h(StoryHarness, { name, title, showError, storyFn, canvasElement }), canvasElement ); } // src/entry-preview.ts var parameters = { renderer: "preact" }; export { render2 as render, renderToCanvas, parameters, entry_preview_exports };