UNPKG

ahooks

Version:
37 lines (36 loc) 1.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _useLatest = _interopRequireDefault(require("../useLatest")); var _utils = require("../utils"); function useEventTarget(options) { var _ref = options || {}, initialValue = _ref.initialValue, transformer = _ref.transformer; var _useState = (0, _react.useState)(initialValue), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), value = _useState2[0], setValue = _useState2[1]; var transformerRef = (0, _useLatest["default"])(transformer); var reset = (0, _react.useCallback)(function () { return setValue(initialValue); }, []); var onChange = (0, _react.useCallback)(function (e) { var _value = e.target.value; if ((0, _utils.isFunction)(transformerRef.current)) { return setValue(transformerRef.current(_value)); } // no transformer => U and T should be the same return setValue(_value); }, []); return [value, { onChange: onChange, reset: reset }]; } var _default = exports["default"] = useEventTarget;