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.
		
		
		
		
		
			
		
			
				
					74 lines
				
				3.2 KiB
			
		
		
			
		
	
	
					74 lines
				
				3.2 KiB
			| 
											3 years ago
										 | import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2'; | ||
|  | import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray'; | ||
|  | import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties'; | ||
|  | import { useState, useCallback } from 'react'; | ||
|  | 
 | ||
|  | var _excluded = ["defaultInputValue", "defaultMenuIsOpen", "defaultValue", "inputValue", "menuIsOpen", "onChange", "onInputChange", "onMenuClose", "onMenuOpen", "value"]; | ||
|  | function useStateManager(_ref) { | ||
|  |   var _ref$defaultInputValu = _ref.defaultInputValue, | ||
|  |     defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu, | ||
|  |     _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen, | ||
|  |     defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe, | ||
|  |     _ref$defaultValue = _ref.defaultValue, | ||
|  |     defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue, | ||
|  |     propsInputValue = _ref.inputValue, | ||
|  |     propsMenuIsOpen = _ref.menuIsOpen, | ||
|  |     propsOnChange = _ref.onChange, | ||
|  |     propsOnInputChange = _ref.onInputChange, | ||
|  |     propsOnMenuClose = _ref.onMenuClose, | ||
|  |     propsOnMenuOpen = _ref.onMenuOpen, | ||
|  |     propsValue = _ref.value, | ||
|  |     restSelectProps = _objectWithoutProperties(_ref, _excluded); | ||
|  |   var _useState = useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue), | ||
|  |     _useState2 = _slicedToArray(_useState, 2), | ||
|  |     stateInputValue = _useState2[0], | ||
|  |     setStateInputValue = _useState2[1]; | ||
|  |   var _useState3 = useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen), | ||
|  |     _useState4 = _slicedToArray(_useState3, 2), | ||
|  |     stateMenuIsOpen = _useState4[0], | ||
|  |     setStateMenuIsOpen = _useState4[1]; | ||
|  |   var _useState5 = useState(propsValue !== undefined ? propsValue : defaultValue), | ||
|  |     _useState6 = _slicedToArray(_useState5, 2), | ||
|  |     stateValue = _useState6[0], | ||
|  |     setStateValue = _useState6[1]; | ||
|  |   var onChange = useCallback(function (value, actionMeta) { | ||
|  |     if (typeof propsOnChange === 'function') { | ||
|  |       propsOnChange(value, actionMeta); | ||
|  |     } | ||
|  |     setStateValue(value); | ||
|  |   }, [propsOnChange]); | ||
|  |   var onInputChange = useCallback(function (value, actionMeta) { | ||
|  |     var newValue; | ||
|  |     if (typeof propsOnInputChange === 'function') { | ||
|  |       newValue = propsOnInputChange(value, actionMeta); | ||
|  |     } | ||
|  |     setStateInputValue(newValue !== undefined ? newValue : value); | ||
|  |   }, [propsOnInputChange]); | ||
|  |   var onMenuOpen = useCallback(function () { | ||
|  |     if (typeof propsOnMenuOpen === 'function') { | ||
|  |       propsOnMenuOpen(); | ||
|  |     } | ||
|  |     setStateMenuIsOpen(true); | ||
|  |   }, [propsOnMenuOpen]); | ||
|  |   var onMenuClose = useCallback(function () { | ||
|  |     if (typeof propsOnMenuClose === 'function') { | ||
|  |       propsOnMenuClose(); | ||
|  |     } | ||
|  |     setStateMenuIsOpen(false); | ||
|  |   }, [propsOnMenuClose]); | ||
|  |   var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue; | ||
|  |   var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen; | ||
|  |   var value = propsValue !== undefined ? propsValue : stateValue; | ||
|  |   return _objectSpread(_objectSpread({}, restSelectProps), {}, { | ||
|  |     inputValue: inputValue, | ||
|  |     menuIsOpen: menuIsOpen, | ||
|  |     onChange: onChange, | ||
|  |     onInputChange: onInputChange, | ||
|  |     onMenuClose: onMenuClose, | ||
|  |     onMenuOpen: onMenuOpen, | ||
|  |     value: value | ||
|  |   }); | ||
|  | } | ||
|  | 
 | ||
|  | export { useStateManager as u }; |