UNPKG

@td-design/react-native

Version:

react-native UI组件库

55 lines 1.17 kB
import { Keyboard } from 'react-native'; import { useCounter, useMemoizedFn } from '@td-design/rn-hooks'; export default function useStepper(_ref) { let { defaultValue, value, min, max, onChange, step = 1 } = _ref; const [current, { set }] = useCounter(value ?? defaultValue, { min, max }); const handleMinus = () => { Keyboard.dismiss(); const value = +current - step; if (onChange) { onChange(value); } else { set(value); } }; const handleAdd = () => { Keyboard.dismiss(); const value = +current + step; if (onChange) { onChange(value); } else { set(value); } }; const handleChange = val => { // 先校验是否是数字 if (Number.isNaN(+val)) { onChange === null || onChange === void 0 ? void 0 : onChange(defaultValue); } else { if (onChange) { onChange(+val); } else { set(+val); } } }; return { current, handleAdd: useMemoizedFn(handleAdd), handleMinus: useMemoizedFn(handleMinus), handleChange: useMemoizedFn(handleChange) }; } //# sourceMappingURL=useStepper.js.map