wwf
22 小时以前 a430284aa21e3ae1f0d5654e55b2ad2852519cc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'use client'
import type { FC } from 'react'
import React, { useEffect } from 'react'
import Input from '@/app/components/base/input'
 
export type IConfigStringProps = {
  value: number | undefined
  maxLength: number
  modelId: string
  onChange: (value: number | undefined) => void
}
 
const ConfigString: FC<IConfigStringProps> = ({
  value,
  onChange,
  maxLength,
}) => {
  useEffect(() => {
    if (value && value > maxLength)
      onChange(maxLength)
  }, [value, maxLength, onChange])
 
  return (
    <div>
      <Input
        type="number"
        max={maxLength}
        min={1}
        value={value || ''}
        onChange={(e) => {
          let value = parseInt(e.target.value, 10)
          if (value > maxLength)
            value = maxLength
 
          else if (value < 1)
            value = 1
 
          onChange(value)
        }}
      />
    </div>
  )
}
 
export default React.memo(ConfigString)