import { useEffect } from 'functional-mini/compat'; import { useEvent, useState } from 'functional-mini/component'; import { mountComponent } from '../_util/component'; import { useComponentEvent } from '../_util/hooks/useComponentEvent'; import { NumberKeyboardFunctionalProps } from './props'; import { useEvent as useStableCallback } from '../_util/hooks/useEvent'; var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var NumberKeyboard = function (props) { var numArr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]; var _a = useState([]), randomArr = _a[0], setRandomArr = _a[1]; var _b = useComponentEvent(props), triggerEventOnly = _b.triggerEventOnly, triggerEvent = _b.triggerEvent; var setRandom = useStableCallback(function () { if (props.random) { var newArr = arr.sort(function () { return Math.random() - 0.5; }); setRandomArr([ newArr.slice(0, 3), newArr.slice(3, 6), newArr.slice(6, 9), ]); } }); var vibrate = useStableCallback(function () { if (props.vibrate && typeof my !== 'undefined') { my.canIUse('vibrateShort') && my.vibrateShort(); } }); useEvent('handleHide', function () { triggerEventOnly('close'); }); useEvent('tapButton', function (e) { var value = props.value, confirmDisabled = props.confirmDisabled; vibrate(); var _key = e.currentTarget.dataset.key; var _val = "".concat(value); // 回退 if (_key === 'del') { triggerEvent('change', "".concat(_val.substr(0, _val.length - 1))); return; } if (_key !== 'del' && _key !== 'enter') { triggerEvent('change', "".concat(_val).concat(_key)); } if (_key === 'enter' && !confirmDisabled) { triggerEventOnly('close'); triggerEventOnly('confirm'); triggerEventOnly('close'); // 保持和之前一样的逻辑 } }); useEvent('catchAppearModal', function () { setRandom(); }); useEffect(function () { setRandom(); }, []); return { randomArr: randomArr, numArr: numArr, }; }; mountComponent(NumberKeyboard, NumberKeyboardFunctionalProps);