import { withPointer, effectScheduler } from './hook-engine.mjs'; | |
export function useEffect(cb, depArray) { | |
withPointer((pointer) => { | |
const oldDeps = pointer.get(); | |
const hasChanged = !Array.isArray(oldDeps) || depArray.some((dep, i) => !Object.is(dep, oldDeps[i])); | |
if (hasChanged) { | |
effectScheduler.queue(cb); | |
} | |
pointer.set(depArray); | |
}); | |
} | |