@storybook/preact
Version:
Storybook Preact renderer: Develop, document, and test UI components in isolation
53 lines (48 loc) • 1.68 kB
JavaScript
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
};