cli-legend
Version:
"A fun command-line rogurelike dungeon game"
12 lines (11 loc) • 414 B
JavaScript
import { withPointer, effectScheduler } from './hook-engine.js';
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);
});
}