Hello. I've created simple plugin for canvas. Kibana version 7.3.
Something like this:
const browserFunctions = [
() => ({
name: 'myPlugin',
fn(data, args) {
return {
type: 'render',
as: 'myPlugin',
value: {data}
}
}
}),
];
const elements = [
() => ({
name: 'myPlugin',
displayName: 'My plugin',
image: '',
expression: 'filters | myPlugin | render',
}),
];
const renderers = () => ({
name: 'myComponent',
reuseDomNode: true,
render(domNode, data, handlers) {
ReactDOM.render(<MyComponent />, domNode, () => handlers.done());
handlers.onDestroy(() => ReactDOM.unmountComponentAtNode(domNode));
}
});;
kbnInterpreter.register({
elements,
browserFunctions,
renderers,
});
In MyComponent i added method componentWillUnmount(). When i refreshed page with canvas or went to another page unmounting didn't run. Have i made mistake here
handlers.onDestroy(() => ReactDOM.unmountComponentAtNode(domNode)); ?