EngraftComponent = ({__element, parameters}) => {
const [outputState, setOutputState] = React.useState(null);
const [outputP, setOutputP] = React.useState(null);
const [ext, setExt] = React.useState(false)
const [version, setVersion] = React.useState(null);
const order = useOrder(__element) || -1
const valueP = React.useMemo(() => {
if (!outputP) {
return undefined;
}
return outputP
.then(output => output.value)
.catch(() => {
return undefined;
});
}, [outputP]);
React.useEffect(()=>{
const channel = new MessageChannel()
window.parent.postMessage({source: "observable-writer", type:'engraft-check'},"*",[channel.port2]);
channel.port1.onmessage = (e) => {
setVersion(e.data.version)
setExt(true)
};
},[order])
useObservableValue(__element, valueP);
return jsx`
<${engraftObservableHost.ObservableEmbed}
reportOutputState=${setOutputState}
reportOutputP=${setOutputP}
parameters=${parameters}
order=${order}
extensionDetected=${ext}
version=${version}
/>
`;
}