27 lines
642 B
TypeScript
27 lines
642 B
TypeScript
import './Input.sass'
|
|
import { createSignal } from 'solid-js'
|
|
|
|
interface Props {
|
|
placeholder?: string
|
|
value?: string
|
|
onChange?: (value: string) => void
|
|
}
|
|
|
|
export default (props: Props) => {
|
|
const [inputValue, setInputValue] = createSignal(props.value || '')
|
|
|
|
const handleChange = (event: Event) => {
|
|
const target = event.target as HTMLInputElement
|
|
const newValue = target.value
|
|
setInputValue(newValue)
|
|
if (props.onChange) {
|
|
props.onChange(newValue)
|
|
}
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<input class="input" type="text" placeholder={props.placeholder} value={inputValue()} onInput={handleChange} />
|
|
</>
|
|
)
|
|
}
|