feat(WEB): 입력 컴포넌트 공통화 및 UI 개선
- 숫자/통화/전화번호/사업자번호 등 특수 입력 컴포넌트 추가 - MobileCard 컴포넌트 통합 (ListMobileCard 제거) - IntegratedListTemplateV2 페이지네이션 버그 수정 (NaN 이슈) - IntegratedDetailTemplate 타이틀 중복 수정 - 문서 시스템 컴포넌트 추가 - 헤더 벨 아이콘 포커스 스타일 개선 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,8 @@ import { Input } from '../ui/input';
|
||||
import { Textarea } from '../ui/textarea';
|
||||
import { RadioGroup, RadioGroupItem } from '../ui/radio-group';
|
||||
import { Label } from '../ui/label';
|
||||
import { PhoneInput } from '../ui/phone-input';
|
||||
import { BusinessNumberInput } from '../ui/business-number-input';
|
||||
import { Building2, UserCircle, Phone, FileText } from 'lucide-react';
|
||||
import { toast } from 'sonner';
|
||||
import { Alert, AlertDescription } from '../ui/alert';
|
||||
@@ -202,11 +204,11 @@ export function ClientRegistration({
|
||||
htmlFor="businessNo"
|
||||
type="custom"
|
||||
>
|
||||
<Input
|
||||
<BusinessNumberInput
|
||||
id="businessNo"
|
||||
placeholder="10자리 숫자 (예: 123-45-67890)"
|
||||
placeholder="123-45-67890"
|
||||
value={formData.businessNo}
|
||||
onChange={(e) => handleFieldChange('businessNo', e.target.value)}
|
||||
onChange={(value) => handleFieldChange('businessNo', value)}
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
@@ -329,29 +331,29 @@ export function ClientRegistration({
|
||||
htmlFor="phone"
|
||||
type="custom"
|
||||
>
|
||||
<Input
|
||||
<PhoneInput
|
||||
id="phone"
|
||||
placeholder="02-1234-5678"
|
||||
value={formData.phone}
|
||||
onChange={(e) => handleFieldChange('phone', e.target.value)}
|
||||
onChange={(value) => handleFieldChange('phone', value)}
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
<FormField label="모바일" htmlFor="mobile" type="custom">
|
||||
<Input
|
||||
<PhoneInput
|
||||
id="mobile"
|
||||
placeholder="010-1234-5678"
|
||||
value={formData.mobile}
|
||||
onChange={(e) => handleFieldChange('mobile', e.target.value)}
|
||||
onChange={(value) => handleFieldChange('mobile', value)}
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
<FormField label="팩스" htmlFor="fax" type="custom">
|
||||
<Input
|
||||
<PhoneInput
|
||||
id="fax"
|
||||
placeholder="02-1234-5678"
|
||||
value={formData.fax}
|
||||
onChange={(e) => handleFieldChange('fax', e.target.value)}
|
||||
onChange={(value) => handleFieldChange('fax', value)}
|
||||
/>
|
||||
</FormField>
|
||||
</FormFieldGrid>
|
||||
@@ -389,11 +391,11 @@ export function ClientRegistration({
|
||||
</FormField>
|
||||
|
||||
<FormField label="담당자 전화" htmlFor="managerTel" type="custom">
|
||||
<Input
|
||||
<PhoneInput
|
||||
id="managerTel"
|
||||
placeholder="010-1234-5678"
|
||||
value={formData.managerTel}
|
||||
onChange={(e) => handleFieldChange('managerTel', e.target.value)}
|
||||
onChange={(value) => handleFieldChange('managerTel', value)}
|
||||
/>
|
||||
</FormField>
|
||||
</FormFieldGrid>
|
||||
|
||||
@@ -26,19 +26,11 @@ export const clientFields: FieldDefinition[] = [
|
||||
{
|
||||
key: 'businessNo',
|
||||
label: '사업자등록번호',
|
||||
type: 'text',
|
||||
type: 'businessNumber',
|
||||
required: true,
|
||||
placeholder: '10자리 숫자 (예: 123-45-67890)',
|
||||
placeholder: '000-00-00000',
|
||||
validation: [
|
||||
{ type: 'required', message: '사업자등록번호를 입력해주세요.' },
|
||||
{
|
||||
type: 'custom',
|
||||
message: '사업자등록번호는 10자리 숫자여야 합니다.',
|
||||
validate: (value) => {
|
||||
const digits = String(value || '').replace(/-/g, '').trim();
|
||||
return /^\d{10}$/.test(digits);
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -101,19 +93,19 @@ export const clientFields: FieldDefinition[] = [
|
||||
{
|
||||
key: 'phone',
|
||||
label: '전화번호',
|
||||
type: 'tel',
|
||||
type: 'phone',
|
||||
placeholder: '02-1234-5678',
|
||||
},
|
||||
{
|
||||
key: 'mobile',
|
||||
label: '모바일',
|
||||
type: 'tel',
|
||||
type: 'phone',
|
||||
placeholder: '010-1234-5678',
|
||||
},
|
||||
{
|
||||
key: 'fax',
|
||||
label: '팩스',
|
||||
type: 'tel',
|
||||
type: 'phone',
|
||||
placeholder: '02-1234-5678',
|
||||
},
|
||||
{
|
||||
@@ -143,7 +135,7 @@ export const clientFields: FieldDefinition[] = [
|
||||
{
|
||||
key: 'managerTel',
|
||||
label: '담당자 전화',
|
||||
type: 'tel',
|
||||
type: 'phone',
|
||||
placeholder: '010-1234-5678',
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user