mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-27 08:48:46 +00:00
Use preact to render the tree (#155)
* Use preact to render the tree * More changes to renderHtml
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
export * from './useFocus'
|
||||
export * from './useModel'
|
||||
export * from './useOnDrag'
|
||||
export * from './useOnHover'
|
||||
|
||||
20
src/app/hooks/useFocus.ts
Normal file
20
src/app/hooks/useFocus.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { useEffect, useState } from 'preact/hooks'
|
||||
|
||||
export function useFocus(): [boolean, () => unknown] {
|
||||
const [active, setActive] = useState(false)
|
||||
|
||||
const hider = () => {
|
||||
setActive(false)
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (active) {
|
||||
document.body.addEventListener('click', hider)
|
||||
}
|
||||
return () => {
|
||||
document.body.removeEventListener('click', hider)
|
||||
}
|
||||
}, [active])
|
||||
|
||||
return [active, () => setActive(true)]
|
||||
}
|
||||
@@ -12,7 +12,6 @@ export function useModel(model: DataModel | undefined | null, invalidated: (mode
|
||||
|
||||
useEffect(() => {
|
||||
model?.addListener(listener)
|
||||
listener.invalidated()
|
||||
return () => {
|
||||
model?.removeListener(listener)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user