- 회원가입 페이지 및 폼 컴포넌트 추가 - 로그인 페이지와 일관된 디자인 - 아이디, 비밀번호, 이름, 차량번호, 휴대폰번호 입력 필드 - 비밀번호 확인 필드 추가 - 유효성 검사 기능 구현 - 차량번호: 한국 차량번호 형식 검증 (12가3456, 123가4567, 서울12가3456 등) - 휴대폰번호: 하이픈 포함 형식 검증 (010-1234-5678) - 비밀번호: 최소 6자 이상, 확인 일치 검증 - 사용자ID: 최소 4자 이상 - 이름: 최소 2자 이상 - UI/UX 개선 - 각 필드별 실시간 유효성 검사 및 에러 메시지 표시 - 비밀번호 표시/숨김 토글 버튼 - 자동 설정된 필드에 안내 문구 표시 - 로그인 페이지로 돌아가기 버튼 추가 - 로그인 페이지에 회원가입 링크 추가 - 타입 및 훅 추가 - RegisterFormData, RegisterResponse 타입 정의 - useRegister 훅으로 비즈니스 로직 분리 - auth API mock 함수 (백엔드 연동 준비) - 사용자 경험 고려 - 입력 필드별 placeholder 예시 제공 - 도움말 텍스트로 입력 형식 안내 - 로딩 상태 표시
29 lines
683 B
TypeScript
29 lines
683 B
TypeScript
import { RegisterFormData, RegisterResponse } from "@/types/auth";
|
|
|
|
/**
|
|
* 인증 관련 API (임시 mock)
|
|
*/
|
|
export const authApi = {
|
|
/**
|
|
* 회원가입 (임시 구현)
|
|
*/
|
|
async register(data: Omit<RegisterFormData, "passwordConfirm">): Promise<RegisterResponse> {
|
|
// TODO: 백엔드 API 연동 필요
|
|
console.log("회원가입 요청:", data);
|
|
|
|
// 임시로 성공 응답 반환
|
|
return new Promise((resolve) => {
|
|
setTimeout(() => {
|
|
resolve({
|
|
success: true,
|
|
message: "회원가입이 완료되었습니다",
|
|
data: {
|
|
userId: data.userId,
|
|
},
|
|
});
|
|
}, 1000);
|
|
});
|
|
},
|
|
};
|
|
|