UNPKG

use-persisted-reducer

Version:

A custom React Hook that persist state from useReducer

2 lines (1 loc) 675 B
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):e.usePersistedReducer=t(e.react)}(this,function(e){var t="default"in e?e.default:e;return function(n,r){if(void 0===r&&(r=globalThis.localStorage),r){var u=function(e){return{get:function(t,n){var r=e.getItem(t);return null===r?"function"==typeof n?n():n:JSON.parse(r)},set:function(t,n){e.setItem(t,JSON.stringify(n))}}}(r);return function(r,f,i){return function(n,r,u,f,i){var o=t.useReducer(n,i.get(f,r),u),c=o[0],d=o[1];return e.useEffect(function(){i.set(f,c)},[c]),[c,d]}(r,f,i,n,u)}}return e.useReducer}});