From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001 From: wwf <yearningwang@iqtogether.com> Date: 星期三, 04 六月 2025 15:17:49 +0800 Subject: [PATCH] 初始化 --- app/components/base/input-number/index.tsx | 60 ++++++++++++++++-------------------------------------------- 1 files changed, 16 insertions(+), 44 deletions(-) diff --git a/app/components/base/input-number/index.tsx b/app/components/base/input-number/index.tsx index 98efc94..316d863 100644 --- a/app/components/base/input-number/index.tsx +++ b/app/components/base/input-number/index.tsx @@ -8,28 +8,24 @@ value?: number onChange: (value?: number) => void amount?: number - size?: 'regular' | 'large' + size?: 'sm' | 'md' max?: number min?: number defaultValue?: number - disabled?: boolean - wrapClassName?: string - controlWrapClassName?: string - controlClassName?: string } & Omit<InputProps, 'value' | 'onChange' | 'size' | 'min' | 'max' | 'defaultValue'> export const InputNumber: FC<InputNumberProps> = (props) => { - const { unit, className, onChange, amount = 1, value, size = 'regular', max, min, defaultValue, wrapClassName, controlWrapClassName, controlClassName, disabled, ...rest } = props + const { unit, className, onChange, amount = 1, value, size = 'md', max, min, defaultValue, ...rest } = props const isValidValue = (v: number) => { - if (typeof max === 'number' && v > max) + if (max && v > max) return false - return !(typeof min === 'number' && v < min) + if (min && v < min) + return false + return true } const inc = () => { - if (disabled) return - if (value === undefined) { onChange(defaultValue) return @@ -40,8 +36,6 @@ onChange(newValue) } const dec = () => { - if (disabled) return - if (value === undefined) { onChange(defaultValue) return @@ -52,7 +46,7 @@ onChange(newValue) } - return <div className={classNames('flex', wrapClassName)}> + return <div className='flex'> <Input {...rest} // disable default controller type='text' @@ -60,7 +54,6 @@ value={value} max={max} min={min} - disabled={disabled} onChange={(e) => { if (e.target.value === '') onChange(undefined) @@ -74,39 +67,18 @@ onChange(parsed) }} unit={unit} - size={size} /> - <div className={classNames( - 'flex flex-col bg-components-input-bg-normal rounded-r-md border-l border-divider-subtle text-text-tertiary focus:shadow-xs', - disabled && 'opacity-50 cursor-not-allowed', - controlWrapClassName)} - > - <button - type='button' - onClick={inc} - disabled={disabled} - aria-label='increment' - className={classNames( - size === 'regular' ? 'pt-1' : 'pt-1.5', - 'px-1.5 hover:bg-components-input-bg-hover', - disabled && 'cursor-not-allowed hover:bg-transparent', - controlClassName, - )} - > + <div className='flex flex-col bg-components-input-bg-normal rounded-r-md border-l border-divider-subtle text-text-tertiary focus:shadow-xs'> + <button onClick={inc} className={classNames( + size === 'sm' ? 'pt-1' : 'pt-1.5', + 'px-1.5 hover:bg-components-input-bg-hover', + )}> <RiArrowUpSLine className='size-3' /> </button> - <button - type='button' - onClick={dec} - disabled={disabled} - aria-label='decrement' - className={classNames( - size === 'regular' ? 'pb-1' : 'pb-1.5', - 'px-1.5 hover:bg-components-input-bg-hover', - disabled && 'cursor-not-allowed hover:bg-transparent', - controlClassName, - )} - > + <button onClick={dec} className={classNames( + size === 'sm' ? 'pb-1' : 'pb-1.5', + 'px-1.5 hover:bg-components-input-bg-hover', + )}> <RiArrowDownSLine className='size-3' /> </button> </div> -- Gitblit v1.8.0