import React from 'react'
interface ArticleFieldProps {
id: string
label: string
value: string | number
onChange: (value: string | number) => void
required?: boolean
type?: 'text' | 'textarea' | 'number'
rows?: number
placeholder?: string
helpText?: string
min?: number
}
function NumberOrTextInput({
id,
type,
value,
placeholder,
required,
min,
onChange,
className,
}: {
id: string
type: 'text' | 'number'
value: string | number
placeholder?: string
required: boolean
min?: number
className: string
onChange: (value: string | number) => void
}) {
const inputProps = {
id,
type,
value,
className,
required,
...(placeholder ? { placeholder } : {}),
...(typeof min === 'number' ? { min } : {}),
}
return (
onChange(type === 'number' ? Number(e.target.value) || 0 : e.target.value)}
/>
)
}
function TextAreaInput({
id,
value,
placeholder,
required,
rows,
className,
onChange,
}: {
id: string
value: string | number
placeholder?: string
required: boolean
rows?: number
className: string
onChange: (value: string | number) => void
}) {
const areaProps = {
id,
value,
className,
required,
...(placeholder ? { placeholder } : {}),
...(rows ? { rows } : {}),
}
return (