feat(WEB): 입력 컴포넌트 공통화 및 UI 개선
- 숫자/통화/전화번호/사업자번호 등 특수 입력 컴포넌트 추가 - MobileCard 컴포넌트 통합 (ListMobileCard 제거) - IntegratedListTemplateV2 페이지네이션 버그 수정 (NaN 이슈) - IntegratedDetailTemplate 타이틀 중복 수정 - 문서 시스템 컴포넌트 추가 - 헤더 벨 아이콘 포커스 스타일 개선 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
'use client';
|
||||
|
||||
import { Label } from '@/components/ui/label';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { NumberInput } from '@/components/ui/number-input';
|
||||
import type { DynamicFieldRendererProps } from '../types';
|
||||
|
||||
export function NumberField({
|
||||
@@ -30,20 +30,19 @@ export function NumberField({
|
||||
{unit && ` (${unit})`}
|
||||
{field.is_required && <span className="text-red-500"> *</span>}
|
||||
</Label>
|
||||
<Input
|
||||
<NumberInput
|
||||
id={fieldKey}
|
||||
type="number"
|
||||
placeholder={field.placeholder || `${field.field_name}을(를) 입력하세요`}
|
||||
value={stringValue}
|
||||
onChange={(e) => {
|
||||
const newValue = e.target.value;
|
||||
// 빈 문자열이면 null, 아니면 숫자로 변환
|
||||
onChange(newValue === '' ? null : Number(newValue));
|
||||
value={value !== null && value !== undefined ? Number(value) : undefined}
|
||||
onChange={(newValue) => {
|
||||
// undefined이면 null, 아니면 숫자로 변환
|
||||
onChange(newValue ?? null);
|
||||
}}
|
||||
disabled={disabled}
|
||||
step={step}
|
||||
min={field.validation_rules?.min}
|
||||
max={field.validation_rules?.max}
|
||||
allowDecimal={step !== 1}
|
||||
className={error ? 'border-red-500' : ''}
|
||||
/>
|
||||
{error && (
|
||||
|
||||
Reference in New Issue
Block a user