Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
  4. function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.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); }
  5. import { useCallback, useRef, useState } from 'react';
  6. import * as Utils from './utils';
  7. function useUncontrolledProp(propValue, defaultValue, handler) {
  8. var wasPropRef = useRef(propValue !== undefined);
  9. var _useState = useState(defaultValue),
  10. stateValue = _useState[0],
  11. setState = _useState[1];
  12. var isProp = propValue !== undefined;
  13. var wasProp = wasPropRef.current;
  14. wasPropRef.current = isProp;
  15. /**
  16. * If a prop switches from controlled to Uncontrolled
  17. * reset its value to the defaultValue
  18. */
  19. if (!isProp && wasProp && stateValue !== defaultValue) {
  20. setState(defaultValue);
  21. }
  22. return [isProp ? propValue : stateValue, useCallback(function (value) {
  23. for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
  24. args[_key - 1] = arguments[_key];
  25. }
  26. if (handler) handler.apply(void 0, [value].concat(args));
  27. setState(value);
  28. }, [handler])];
  29. }
  30. export { useUncontrolledProp };
  31. export default function useUncontrolled(props, config) {
  32. return Object.keys(config).reduce(function (result, fieldName) {
  33. var _extends2;
  34. var _ref = result,
  35. defaultValue = _ref[Utils.defaultKey(fieldName)],
  36. propsValue = _ref[fieldName],
  37. rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));
  38. var handlerName = config[fieldName];
  39. var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),
  40. value = _useUncontrolledProp[0],
  41. handler = _useUncontrolledProp[1];
  42. return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));
  43. }, props);
  44. }