UNPKG

opendash

Version:

open.DASH data visualization framework

21 lines 922 B
import produce from "immer"; import { useState, useCallback } from "react"; export function useImmerState(initialValue) { var _a = useState(initialValue), state = _a[0], setState = _a[1]; return [ state, // the immer way "updateDraft" useCallback(function (updater) { setState(function (state) { return produce(state, updater); }); }, []), // the normal useState + object freeze way "replaceDraft" useCallback(function (update) { setState(function (state) { return produce(state, function (draft) { return update; }); }); }, []), // the object assign way "assignDraft" useCallback(function (update) { setState(function (state) { return produce(state, function (draft) { return void Object.assign(draft, update); }); }); }, []), ]; } //# sourceMappingURL=useImmerState.js.map