@nexcodepl/store-react
Version:
React utils for @nexcodepl/store
19 lines (18 loc) • 742 B
JavaScript
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;
}