piral-debug-utils
Version:
Utilities for debugging Piral instances.
34 lines • 1.02 kB
JavaScript
import * as React from 'react';
const changeEvent = 'extension-catalogue-changed';
const store = {
current: undefined,
observe(setState) {
const handler = () => {
setState(store.current);
};
window.addEventListener(changeEvent, handler);
return () => {
window.removeEventListener(changeEvent, handler);
};
},
};
export function changeExtensionCatalogueStore(state) {
store.current = {
...state,
params: JSON.stringify(state.params),
};
window.dispatchEvent(new CustomEvent(changeEvent));
}
export const ExtensionCatalogue = () => {
const [state, setState] = React.useState(store.current);
React.useEffect(() => {
return store.observe(setState);
}, []);
if (state) {
const { name = '', params = '' } = state;
// @ts-ignore
return React.createElement("piral-extension", { name: name, params: params });
}
return null;
};
//# sourceMappingURL=ExtensionCatalogue.js.map