UNPKG

@furystack/shades

Version:

Google Authentication Provider for FuryStack

46 lines 1.47 kB
import { Shade } from '../shade.js'; export const LazyLoad = Shade({ shadowDomName: 'lazy-load', constructed: async ({ props, useState, element }) => { const [_component, setComponent] = useState('component', undefined); const [_errorState, setErrorState] = useState('error', undefined); try { const loaded = await props.component(); if (element.isConnected) { setComponent(loaded); } } catch (error) { if (props.error) { if (element.isConnected) { setErrorState(error); } } else { throw error; } } }, render: ({ props, useState }) => { const [error, setError] = useState('error', undefined); const [component, setComponent] = useState('component', undefined); if (error && props.error) { return props.error(error, async () => { try { setError(undefined); setComponent(undefined); const loaded = await props.component(); setComponent(loaded); } catch (e) { setError(e); } }); } if (component) { return component; } return props.loader; }, }); //# sourceMappingURL=lazy-load.js.map