'use client';
import { Field } from '@/components/ui/field';
import { Input } from '@/components/ui/input';
import { Select } from '@/components/ui/select';
import {
ADMIN_ROLE_OPTIONS,
DEFAULT_ADMIN_ROLE_CODE,
type AdminMember,
} from '@/lib/domain/admin-member';
import {
splitPhoneNumber,
type AdminMemberFormErrors,
} from '@/lib/domain/admin-member-form';
import { AdminMenuPicker } from './admin-menu-picker';
interface AdminMemberFormFieldsProps {
/** 수정 팝업의 기존 값. 등록 팝업은 넘기지 않는다(빈 폼). */
member?: AdminMember;
errors: AdminMemberFormErrors;
}
/**
* 등록·수정 팝업이 공유하는 입력 항목 — 휴대전화 번호 / 이메일 / 역할 선택 / 메뉴 선택.
* 두 시안(ADM_ADM_102_p ②③ / 103_p ②)에서 규칙이 같은 부분만 모았다. 서로 다른 부분
* (이름·ID의 편집 가능 여부, 비밀번호 입력 방식, 잠김여부)은 각 팝업이 직접 그린다.
*
* 휴대전화 번호는 시안대로 3칸으로 나눠 받고 Server Action이 하나로 합친다
* (`joinPhoneNumber`) — 칸을 나누는 것은 화면 표현이고, 저장 형식은 도메인이 정한다.
*/
export function AdminMemberFormFields({
member,
errors,
}: AdminMemberFormFieldsProps) {
const phoneParts = splitPhoneNumber(member?.phoneNumber ?? null);
return (
<>
{message}
; }