UNPKG

oc-template-preact-compiler

Version:
44 lines (34 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = preactOCProviderTemplate; const removeExtension = (path) => path.replace(/\.(t|j)sx?$/, ''); function preactOCProviderTemplate({ viewPath, providerFunctions }) { return ` import { render } from 'preact'; import { useEffect } from 'preact/hooks'; import View from '${removeExtension(viewPath)}'; import { DataProvider } from 'oc-template-preact-compiler/dist/utils/useData' function OCProvider(props) { const { _staticPath, _baseUrl, _componentName, _componentVersion, ...rest } = props; useEffect(() => { window.oc.events.fire('oc:componentDidMount', rest); }, []); ${providerFunctions} rest.getData = getData; rest.getSetting = getSetting; return ( <DataProvider value={{...rest}}> <View { ...rest } /> </DataProvider> ); } function renderer(props, element, ssr) { render(<OCProvider {...props} />, element); element.parentElement.unmount = () => { render(null, element); } } renderer.component = OCProvider; export default renderer; `; }