{"version":3,"file":"useMergedState.cjs","sources":["../../../../../../../../node_modules/rc-util/es/hooks/useMergedState.js"],"sourcesContent":["import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n  return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n  var _ref = option || {},\n    defaultValue = _ref.defaultValue,\n    value = _ref.value,\n    onChange = _ref.onChange,\n    postState = _ref.postState;\n\n  // ======================= Init =======================\n  var _useState = useState(function () {\n      if (hasValue(value)) {\n        return value;\n      } else if (hasValue(defaultValue)) {\n        return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n      } else {\n        return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n      }\n    }),\n    _useState2 = _slicedToArray(_useState, 2),\n    innerValue = _useState2[0],\n    setInnerValue = _useState2[1];\n  var mergedValue = value !== undefined ? value : innerValue;\n  var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n  // ====================== Change ======================\n  var onChangeFn = useEvent(onChange);\n  var _useState3 = useState([mergedValue]),\n    _useState4 = _slicedToArray(_useState3, 2),\n    prevValue = _useState4[0],\n    setPrevValue = _useState4[1];\n  useLayoutUpdateEffect(function () {\n    var prev = prevValue[0];\n    if (innerValue !== prev) {\n      onChangeFn(innerValue, prev);\n    }\n  }, [prevValue]);\n\n  // Sync value back to `undefined` when it from control to un-control\n  useLayoutUpdateEffect(function () {\n    if (!hasValue(value)) {\n      setInnerValue(value);\n    }\n  }, [value]);\n\n  // ====================== Update ======================\n  var triggerChange = useEvent(function (updater, ignoreDestroy) {\n    setInnerValue(updater, ignoreDestroy);\n    setPrevValue([mergedValue], ignoreDestroy);\n  });\n  return [postMergedValue, triggerChange];\n}"],"names":["_slicedToArray","useLayoutUpdateEffect"],"mappings":";;;;;;;AAIA;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AACD;AACA;AACA;AACA;AACA;AACe,SAAS,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;AAClE,EAAE,IAAI,IAAI,GAAG,MAAM,IAAI,EAAE;AACzB,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY;AACpC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;AACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC5B,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC/B;AACA;AACA,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAC,YAAY;AACvC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC3B,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,EAAE;AACzC,QAAQ,OAAO,OAAO,YAAY,KAAK,UAAU,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC;AAClF,OAAO,MAAM;AACb,QAAQ,OAAO,OAAO,iBAAiB,KAAK,UAAU,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,CAAC;AACjG,OAAO;AACP,KAAK,CAAC;AACN,IAAI,UAAU,GAAGA,aAAc,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7C,IAAI,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC;AAC9B,IAAI,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAClC,EAAE,IAAI,WAAW,GAAG,KAAK,KAAK,SAAS,GAAG,KAAK,GAAG,UAAU,CAAC;AAC7D,EAAE,IAAI,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AACzE;AACA;AACA,EAAE,IAAI,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtC,EAAE,IAAI,UAAU,GAAG,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;AAC1C,IAAI,UAAU,GAAGA,aAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9C,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;AAC7B,IAAI,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,EAAEC,qCAAqB,CAAC,YAAY;AACpC,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5B,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE;AAC7B,MAAM,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACnC,KAAK;AACL,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAClB;AACA;AACA,EAAEA,qCAAqB,CAAC,YAAY;AACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC1B,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACd;AACA;AACA,EAAE,IAAI,aAAa,GAAG,QAAQ,CAAC,UAAU,OAAO,EAAE,aAAa,EAAE;AACjE,IAAI,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC1C,IAAI,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;AAC/C,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;AAC1C;;;;","x_google_ignoreList":[0]}