synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
25 lines (16 loc) • 877 B
JavaScript
import { useMemo } from "react";
import { toObservable } from "../../reactive/effects/utils/toObservable.js";
import { useObservable } from "./useObservable.js";
function useStorageObservable(storage, selector) {
const observable = useMemo(()=>selector ? toObservable(storage, selector) : toObservable(storage), // selector намеренно не в deps: пересоздавать поток на каждую новую ссылку
// селектора не нужно (он редко стабилен), переподписка идёт только по storage.
[
storage
]);
const initial = useMemo(()=>selector ? selector(storage.getStateSync()) : storage.getStateSync(), [
storage
]);
return useObservable(observable, initial);
}
export { useStorageObservable };
//# sourceMappingURL=useStorageObservable.js.map