(props, config)
| 1258 | } |
| 1259 | |
| 1260 | function useUncontrolled(props, config) { |
| 1261 | return Object.keys(config).reduce(function (result, fieldName) { |
| 1262 | var _extends2; |
| 1263 | |
| 1264 | var defaultValue = result[Utils.defaultKey(fieldName)], |
| 1265 | propsValue = result[fieldName], |
| 1266 | rest = _objectWithoutPropertiesLoose(result, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey)); |
| 1267 | |
| 1268 | var handlerName = config[fieldName]; |
| 1269 | var prevProps = (0, _react.useRef)({}); |
| 1270 | |
| 1271 | var _useState = (0, _react.useState)(defaultValue), |
| 1272 | stateValue = _useState[0], |
| 1273 | setState = _useState[1]; |
| 1274 | |
| 1275 | var isProp = Utils.isProp(props, fieldName); |
| 1276 | var wasProp = Utils.isProp(prevProps.current, fieldName); |
| 1277 | prevProps.current = props; |
| 1278 | /** |
| 1279 | * If a prop switches from controlled to Uncontrolled |
| 1280 | * reset its value to the defaultValue |
| 1281 | */ |
| 1282 | |
| 1283 | if (!isProp && wasProp) { |
| 1284 | setState(defaultValue); |
| 1285 | } |
| 1286 | |
| 1287 | var propsHandler = props[handlerName]; |
| 1288 | var handler = (0, _react.useCallback)(function (value) { |
| 1289 | for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { |
| 1290 | args[_key - 1] = arguments[_key]; |
| 1291 | } |
| 1292 | |
| 1293 | if (propsHandler) propsHandler.apply(void 0, [value].concat(args)); |
| 1294 | setState(value); |
| 1295 | }, [setState, propsHandler]); |
| 1296 | return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = isProp ? propsValue : stateValue, _extends2[handlerName] = handler, _extends2)); |
| 1297 | }, props); |
| 1298 | } |
| 1299 | |
| 1300 | module.exports = exports["default"]; |
| 1301 |
nothing calls this directly
no test coverage detected
searching dependent graphs…