diff --git a/src/packages/numberkeyboard/numberkeyboard.taro.tsx b/src/packages/numberkeyboard/numberkeyboard.taro.tsx index 6b892ef90a..a79e939492 100644 --- a/src/packages/numberkeyboard/numberkeyboard.taro.tsx +++ b/src/packages/numberkeyboard/numberkeyboard.taro.tsx @@ -49,7 +49,7 @@ export const NumberKeyboard: FunctionComponent< onClose, onConfirm, ...rest - } = props + } = { ...defaultProps, ...props } const classPrefix = 'nut-numberkeyboard' const getBasicKeys = () => { @@ -100,17 +100,37 @@ export const NumberKeyboard: FunctionComponent< } const onTouchEnd = (item: { id: string; type: string }) => { setActive(false) - if (item.type === 'num' || item.type === 'custom') { - onChange && onChange(item.id) + switch (item.type) { + case 'num': + case 'custom': + onChange?.(item.id) + break + case 'close': + onClose?.() + break + case 'delete': + onDelete?.() + break + case 'confirm': + onConfirm?.() + break + default: + break } - if (item.type === 'close') { - onClose && onClose() - } - if (item.type === 'delete') { - onDelete && onDelete() - } - if (item.type === 'confirm') { - onConfirm && onConfirm() + } + const renderContent = (item: { id: string; type: string }) => { + switch (item.type) { + case 'num': + case 'custom': + return
{item.id}
+ case 'delete': + return + case 'close': + return + case 'confirm': + return <>{confirmText || locale.done} + default: + return null } } return ( @@ -127,12 +147,7 @@ export const NumberKeyboard: FunctionComponent< onTouchEnd={() => onTouchEnd(item)} onTouchCancel={() => onTouchEnd(item)} > - {(item.type === 'num' || item.type === 'custom') && ( -
{item.id}
- )} - {item.type === 'delete' && } - {item.type === 'close' && } - {item.type === 'confirm' && <>{confirmText || locale.done}} + {renderContent(item)} ) @@ -140,13 +155,13 @@ export const NumberKeyboard: FunctionComponent< return (
{title && ( diff --git a/src/packages/numberkeyboard/numberkeyboard.tsx b/src/packages/numberkeyboard/numberkeyboard.tsx index fb7a274b3e..4a58ce806a 100644 --- a/src/packages/numberkeyboard/numberkeyboard.tsx +++ b/src/packages/numberkeyboard/numberkeyboard.tsx @@ -48,7 +48,7 @@ export const NumberKeyboard: FunctionComponent< onClose, onConfirm, ...rest - } = props + } = { ...defaultProps, ...props } const classPrefix = 'nut-numberkeyboard' const getBasicKeys = () => { @@ -104,17 +104,37 @@ export const NumberKeyboard: FunctionComponent< } const onTouchEnd = (item: { id: string; type: string }) => { setActive(false) - if (item.type === 'num' || item.type === 'custom') { - onChange && onChange(item.id) + switch (item.type) { + case 'num': + case 'custom': + onChange?.(item.id) + break + case 'close': + onClose?.() + break + case 'delete': + onDelete?.() + break + case 'confirm': + onConfirm?.() + break + default: + break } - if (item.type === 'close') { - onClose && onClose() - } - if (item.type === 'delete') { - onDelete && onDelete() - } - if (item.type === 'confirm') { - onConfirm && onConfirm() + } + const renderContent = (item: { id: string; type: string }) => { + switch (item.type) { + case 'num': + case 'custom': + return
{item.id}
+ case 'delete': + return + case 'close': + return + case 'confirm': + return <>{confirmText || locale.done} + default: + return null } } return ( @@ -131,12 +151,7 @@ export const NumberKeyboard: FunctionComponent< onTouchEnd={() => onTouchEnd(item)} onTouchCancel={() => onTouchEnd(item)} > - {(item.type === 'num' || item.type === 'custom') && ( -
{item.id}
- )} - {item.type === 'delete' && } - {item.type === 'close' && } - {item.type === 'confirm' && <>{confirmText || locale.done}} + {renderContent(item)}
) @@ -144,13 +159,13 @@ export const NumberKeyboard: FunctionComponent< return (
{title && (