feat(web): 회원가입 로그인 API 연동 - #73
Conversation
|
Warning Review limit reached
More reviews will be available in 43 minutes and 46 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Get PR details and comments
gh pr view 73 --repo pair-study/final-project --json title,body,state,comments,reviews,reviewRequests
echo "=== PR FILES ==="
gh pr diff 73 --repo pair-study/final-project --name-onlyLength of output: 6921 🏁 Script executed: #!/bin/bash
# Get the full diff for review
gh pr diff 73 --repo pair-study/final-projectLength of output: 27669 🏁 Script executed: #!/bin/bash
# Check zod version in shared package and if it's re-exported
cat packages/shared/package.json
echo "---"
# Check if zod is already in shared's dependencies
grep -r '"zod"' packages/shared/package.json apps/web/package.jsonLength of output: 877
🔴 Must-fix
// api-client.ts 의 fetch 이후 error 처리 부분 예시
if (response.status === 401 && !init._isRetry) {
await refreshSession(); // 갱신 시도
return apiClient(path, { ...options, _isRetry: true });
}MVP 범위 내 인증 플로우 완성을 위해 이 연결이 필요합니다. 아니면 401 처리를 의도적으로 컴포넌트 레이어로 위임하는 것이라면 주석으로 명시해 주세요. 🟡 Should-fix
return parsedResponse as TResponse; // 런타임 검증 없음API 스펙이 바뀌거나 서버가 예상 밖 구조를 내려줄 때 런타임 오류가 발생합니다. 호출 측에서 Zod schema를 옵션으로 넘겨 검증하는 방식을 권장합니다. // 옵션으로 schema를 받는 오버로드 추가 예시
export function apiClient<TResponse>(
path: string,
options?: ApiJsonRequestOptions & { schema?: z.ZodType<TResponse> },
): Promise<TResponse>;
개별 필드의 에러 <Input
id="email"
aria-invalid={Boolean(errors.email)}
aria-describedby={errors.email ? "email-error" : undefined}
{...register("email")}
/>
{errors.email && (
<p id="email-error" className="text-sm text-destructive">
{errors.email.message}
</p>
)}🟢 Minor
const [formError, setFormError] = useState(""); // "" vs null 구분 없음
빈 값 "비밀번호를 입력하세요." / 짧은 값 "비밀번호는 8자 이상이어야 합니다." 순서로 UX 메시지를 분리한 것은 의도적이고 올바릅니다.
|
작업 내용
검증
Closes #66
Summary by CodeRabbit
New Features
Bug Fixes