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)
|
|