syncbasestore
Version:
Lightweight reactive store with built-in filtering and async state handling
13 lines (12 loc) • 410 B
JavaScript
import { useEffect, useState } from 'react';
import { getSyncBase } from '../store/createSyncBase';
export function useBaseFetch(selector) {
const base = getSyncBase();
const [selected, setSelected] = useState(() => selector(base.getState()));
useEffect(() => {
return base.subscribe((state) => {
setSelected(selector(state));
});
}, [base]);
return selected;
}