@devloops/react-native-variant
Version:
react-native material ui library
2 lines • 2.32 kB
JavaScript
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return typeof key==="symbol"?key:String(key);}function _toPrimitive(input,hint){if(typeof input!=="object"||input===null)return input;var prim=input[typeof Symbol==="function"?Symbol.toPrimitive:"@@toPrimitive"];if(prim!==undefined){var res=prim.call(input,hint||"default");if(typeof res!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.");}return(hint==="string"?String:Number)(input);}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(Object(source),true).forEach(function(key){_defineProperty(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}import{useState,useMemo,useCallback}from'react';var useMap=function useMap(){var initialMap=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _useState=useState(initialMap),_useState2=_slicedToArray(_useState,2),map=_useState2[0],_set=_useState2[1];var stableActions=useMemo(function(){return{set:function set(key,entry){_set(function(prevMap){return _objectSpread({},prevMap,_defineProperty({},key,entry));});},remove:function remove(key){_set(function(prevMap){var omit=prevMap[key],rest=_objectWithoutProperties(prevMap,[key].map(_toPropertyKey));return rest;});},reset:function reset(){return _set(initialMap);}};},[_set]);var utils=_objectSpread({get:useCallback(function(key){return map[key];},[map])},stableActions);return[map,utils];};export default useMap;
//# sourceMappingURL=useMap.js.map