12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 'use client'
- import type { FC } from 'react'
- import React from 'react'
- import { DataType } from '../types'
- import Input from '@/app/components/base/input'
- import { InputNumber } from '@/app/components/base/input-number'
- import cn from '@/utils/classnames'
- import Datepicker from '../base/date-picker'
- type Props = {
- className?: string
- type: DataType
- value: any
- onChange: (value: any) => void
- readOnly?: boolean
- }
- const InputCombined: FC<Props> = ({
- className: configClassName,
- type,
- value,
- onChange,
- readOnly,
- }) => {
- const className = cn('grow p-0.5 h-6 text-xs')
- if (type === DataType.time) {
- return (
- <Datepicker
- className={className}
- value={value}
- onChange={onChange}
- />
- )
- }
- if (type === DataType.number) {
- return (
- <div className='grow text-[0]'>
- <InputNumber
- className={cn(className, 'rounded-l-md')}
- value={value}
- onChange={onChange}
- size='sm'
- controlWrapClassName='overflow-hidden'
- controlClassName='pt-0 pb-0'
- readOnly={readOnly}
- />
- </div>
- )
- }
- return (
- <Input
- wrapperClassName={configClassName}
- className={cn(className, 'rounded-md')}
- value={value}
- onChange={e => onChange(e.target.value)}
- readOnly={readOnly}
- />
- )
- }
- export default React.memo(InputCombined)
|