UNPKG

@nexcodepl/store-react

Version:
19 lines (18 loc) 742 B
import { useEffect } from "react"; import { StoreComputed } from "@nexcodepl/store"; import { useRefStatic } from "./useRefStatic.js"; export function useStoreComputedWithDeps(computedValueGenerator, dependenciesStore, storeConfig, dependencies) { const storeComputedRef = useRefStatic(() => new StoreComputed(computedValueGenerator, dependenciesStore, storeConfig)); useEffect(() => { storeComputedRef.current.dependenciesSubscribe(); return () => { storeComputedRef.current.dependenciesUnsubscribe(); }; }, []); useEffect(() => { if (!dependencies) return; storeComputedRef.current.compute(); }, dependencies ?? []); return storeComputedRef.current; }