@raulpesilva/re-state
Version:
easy way to create a shared state to the entire application
19 lines (18 loc) • 608 B
JavaScript
import { useDebugValue, useState } from 'react';
import { store } from './store';
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
export function createReStateSelect(key) {
return function useReStateSelect() {
var _useState = useState(store.get(key)),
reStateValue = _useState[0],
setReStateValue = _useState[1];
useDebugValue(reStateValue);
useIsomorphicLayoutEffect(function () {
var unSub = store.subscribe(key, function () {
setReStateValue(store.get(key));
});
return unSub;
}, [key]);
return reStateValue;
};
}