@storybook/svelte
Version:
Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.
53 lines (48 loc) • 1.01 kB
JavaScript
import global from 'global';
// eslint-disable-next-line import/no-extraneous-dependencies
import PreviewRender from '@storybook/svelte/templates/PreviewRender.svelte';
const {
document
} = global;
let previousComponent = null;
function cleanUpPreviousStory() {
if (!previousComponent) {
return;
}
previousComponent.$destroy();
previousComponent = null;
}
export function renderToDOM({
storyFn,
kind,
name,
showMain,
showError
}, domElement) {
cleanUpPreviousStory();
const target = document.getElementById('root');
target.innerHTML = '';
previousComponent = new PreviewRender({
target,
props: {
storyFn,
name,
kind,
showError
}
});
showMain();
}
export const render = (args, context) => {
const {
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 {
Component,
props: args
};
};