UNPKG

@modern-kit/react

Version:
40 lines (36 loc) 1.21 kB
'use strict'; var React = require('react'); var hooksUsePreservedCallback = require('../usePreservedCallback/index.cjs'); var utils = require('@modern-kit/utils'); function useInputState(initialValue = "", options = {}) { const { validate } = options; const [value, setValue] = React.useState(initialValue); const [error, setError] = React.useState(null); const preservedValidate = hooksUsePreservedCallback.usePreservedCallback(validate ?? utils.noop); const onChange = React.useCallback( (e) => { const { value: value2 } = e.target; const validationError = preservedValidate(value2); if (validationError) { setError(validationError); } else { setError(null); } setValue(value2); }, [preservedValidate] ); const resetError = React.useCallback(() => { setError(null); }, []); const resetValue = React.useCallback(() => { setValue(initialValue); }, [initialValue]); const reset = React.useCallback(() => { resetValue(); resetError(); }, [resetValue, resetError]); return { value, error, onChange, resetError, resetValue, reset }; } exports.useInputState = useInputState; //# sourceMappingURL=index.cjs.map