임동욱 임동욱 08-19
merge: 휴대전화 앞자리 기본값 010
@2336ec0a0a8429d41c6715a25cf77d85c64374a6
app/(protected)/(basic)/admins/_components/admin-member-create-modal.tsx
--- app/(protected)/(basic)/admins/_components/admin-member-create-modal.tsx
+++ app/(protected)/(basic)/admins/_components/admin-member-create-modal.tsx
@@ -21,6 +21,7 @@
 import { FoxChatCenteredDotsIcon } from '@fox/core/icons';
 import { useFeedback } from '@/app/_hooks/use-feedback';
 import { DEFAULT_ADMIN_ROLE_CODE } from '@/lib/domain/admin-member';
+import { DEFAULT_MOBILE_PHONE_PREFIX } from '@/lib/domain/phone-number';
 import {
   ADMIN_EMAIL_MESSAGES,
   ADMIN_LOGIN_ID_HELP_TEXT,
@@ -91,7 +92,8 @@
   });
   const [isChecking, startChecking] = useTransition();
 
-  const [phoneNumber, setPhoneNumber] = useState('');
+  // 앞자리는 고르지 않아도 되도록 기본값으로 시작한다(상수 주석 참조).
+  const [phoneNumber, setPhoneNumber] = useState(DEFAULT_MOBILE_PHONE_PREFIX);
   const [emailLocal, setEmailLocal] = useState('');
   const [emailDomain, setEmailDomain] = useState(EMAIL_DOMAIN_OPTIONS[0]);
   const [isCustomDomain, setIsCustomDomain] = useState(false);
app/(protected)/(basic)/admins/_components/admin-member-edit-modal.tsx
--- app/(protected)/(basic)/admins/_components/admin-member-edit-modal.tsx
+++ app/(protected)/(basic)/admins/_components/admin-member-edit-modal.tsx
@@ -24,6 +24,7 @@
 import { AdminMemberFormFields } from './admin-member-form-fields';
 import styles from './admin-member-modal.module.scss';
 import { submitFormAction } from '@/app/_hooks/submit-form-action';
+import { DEFAULT_MOBILE_PHONE_PREFIX } from '@/lib/domain/phone-number';
 
 interface AdminMemberEditModalProps {
   member: AdminMember;
@@ -63,8 +64,9 @@
   const formRef = useRef<HTMLFormElement>(null);
 
   const [isPasswordEditable, setIsPasswordEditable] = useState(false);
+  // 저장된 번호가 없으면 등록 팝업과 같이 기본 앞자리로 시작한다.
   const [phoneNumber, setPhoneNumber] = useState(
-    toPhoneDigits(member.phoneNumber)
+    () => toPhoneDigits(member.phoneNumber) || DEFAULT_MOBILE_PHONE_PREFIX
   );
   const [email, setEmail] = useState(member.email ?? '');
   const [roleCode, setRoleCode] = useState(
lib/domain/phone-number.ts
--- lib/domain/phone-number.ts
+++ lib/domain/phone-number.ts
@@ -73,3 +73,10 @@
   '018',
   '019',
 ];
+
+/**
+ * 앞자리 기본값. **화면이 이 값으로 시작해야 한다** — 셀렉트를 비워 두면 placeholder "010"이
+ * 고른 것처럼 보이는데 값은 비어 있어, 사용자가 앞자리를 건드리지 않고 뒷자리만 채우면 8자리가
+ * 제출된다(실제로 그래서 등록이 막혔다).
+ */
+export const DEFAULT_MOBILE_PHONE_PREFIX = MOBILE_PHONE_PREFIXES[0];
Add a comment
List