'use client';
import { useId, useState } from 'react';
import { Input, Field, Icon, type InputSize } from '@mbsw/ui';
import { Search } from 'lucide-react';
export default function Demo() {
const settings = {
"leadingIcon": false,
"readOnly": false,
"invalid": false,
"placeholder": "텍스트를 입력해 주세요.",
"size": "md",
"disabled": false
};
const [value, setValue] = useState('');
const errorId = useId();
const hasError = settings.invalid;
return (
<div style={{ display: 'grid', gap: 4, width: 280, maxWidth: '100%' }}>
<Input
clearLabel={"입력값 지우기"}
aria-label={"텍스트"}
readOnly={settings.readOnly}
leadingIcon={
settings.leadingIcon ? (
<Icon icon={Search} size="sm" decorative />
) : undefined
}
aria-invalid={hasError || undefined}
aria-describedby={hasError ? errorId : undefined}
placeholder={settings.placeholder}
value={value}
onChange={(event) => setValue(event.target.value)}
disabled={settings.disabled}
size={settings.size as InputSize}
/>
{hasError && (
<Field id={errorId} status="error" message="Error message" />
)}
</div>
);
}