@td-design/react-native
Version:
react-native UI组件库
55 lines • 1.17 kB
JavaScript
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