import { useState } from 'react';

function useInputChange(defaultValue, middlewareFn) {
	const [value, setValue] = useState(defaultValue);
	const handler = (e) => {
		if (middlewareFn) {
			setValue(middlewareFn(e.target.value));
		} else {
			setValue(e.target.value);
		}
	};

	return [value, handler];
}

export default useInputChange;

/**
 * const [id, handleId] = useInputChange('');
 *
 * <input value={id} onChange={handleId} />
 */