Files
misode.github.io/src/app/hooks/useModel.ts
Misode 386eb675d6 Use preact to render the tree (#155)
* Use preact to render the tree

* More changes to renderHtml
2021-09-09 21:36:19 +02:00

20 lines
410 B
TypeScript

import type { DataModel } from '@mcschema/core'
import { useEffect } from 'preact/hooks'
export function useModel(model: DataModel | undefined | null, invalidated: (model: DataModel) => unknown) {
const listener = {
invalidated() {
if (model) {
invalidated(model)
}
},
}
useEffect(() => {
model?.addListener(listener)
return () => {
model?.removeListener(listener)
}
}, [model])
}