Skip to content

6.18 업데이트 - #396

Merged
yhi9839 merged 5 commits into
mainfrom
dev
Jun 21, 2026
Merged

yhi9839 merged 5 commits into
mainfrom
dev

Conversation

@yhi9839

@yhi9839 yhi9839 commented Jun 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Login form now accepts email or nickname as identifier.
  • Bug Fixes

    • Extended email verification countdown duration to 10 minutes.
  • Chores

    • Removed legacy and duplicate components and modules.

yhi9839 and others added 5 commits June 17, 2026 14:40
- 로그인 입력 placeholder '이메일' → '이메일 또는 닉네임'
- 검증 메시지 '이메일을 입력해주세요' → '이메일 또는 닉네임을 입력해주세요'
- 미사용 사본 파일 제거: Login 폴더의 ' 2' 중복본 5개(LoginForm/useLoginForm/LoginIcons/SocialLogin/GlobalLoginModal)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
macOS 복사본(' 2') 중 import되지 않는 비로그인 코드 사본 제거:
- Admin/ConfirmModal 2, Admin/Toast 2
- Bookcase/MeetingChatModal 2, Bookcase/MeetingTeamMemberPopover 2
- Comment/comment_section_bookcase 2
- lib/api/admin/clubs 2, types/groups/meetingChats 2, types/groups/meetingTopics 2

에셋 사본 및 page.backup.tsx는 별도 판단 예정으로 제외.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
회원가입 이메일 인증 카운터 시작값 300초 → 600초로 변경

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
refactor: 미사용 사본 파일 정리 (비로그인 코드 8종)
refactor(login): 이메일/닉네임 로그인 문구 정정 및 미사용 사본 파일 제거
@vercel

vercel Bot commented Jun 18, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
checkmo Ready Ready Preview, Comment Jun 18, 2026 6:33am

@coderabbitai

coderabbitai Bot commented Jun 18, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 045df713-0669-4936-b50b-713ea126976f

📥 Commits

Reviewing files that changed from the base of the PR and between 53a593e and 1ea0d27.

📒 Files selected for processing (16)
  • src/components/base-ui/Admin/ConfirmModal 2.tsx
  • src/components/base-ui/Admin/Toast 2.tsx
  • src/components/base-ui/Bookcase/MeetingChatModal 2.tsx
  • src/components/base-ui/Bookcase/MeetingTeamMemberPopover 2.tsx
  • src/components/base-ui/Comment/comment_section_bookcase 2.tsx
  • src/components/base-ui/Join/steps/useEmailVerification.ts
  • src/components/base-ui/Login/GlobalLoginModal 2.tsx
  • src/components/base-ui/Login/components/LoginForm 2.tsx
  • src/components/base-ui/Login/components/LoginForm.tsx
  • src/components/base-ui/Login/components/LoginIcons 2.tsx
  • src/components/base-ui/Login/components/SocialLogin 2.tsx
  • src/components/base-ui/Login/hooks/useLoginForm 2.tsx
  • src/components/base-ui/Login/hooks/useLoginForm.tsx
  • src/lib/api/admin/clubs 2.ts
  • src/types/groups/meetingChats 2.ts
  • src/types/groups/meetingTopics 2.ts
💤 Files with no reviewable changes (13)
  • src/components/base-ui/Comment/comment_section_bookcase 2.tsx
  • src/components/base-ui/Login/GlobalLoginModal 2.tsx
  • src/types/groups/meetingChats 2.ts
  • src/types/groups/meetingTopics 2.ts
  • src/components/base-ui/Login/components/LoginForm 2.tsx
  • src/components/base-ui/Bookcase/MeetingTeamMemberPopover 2.tsx
  • src/components/base-ui/Login/hooks/useLoginForm 2.tsx
  • src/components/base-ui/Login/components/LoginIcons 2.tsx
  • src/lib/api/admin/clubs 2.ts
  • src/components/base-ui/Admin/Toast 2.tsx
  • src/components/base-ui/Login/components/SocialLogin 2.tsx
  • src/components/base-ui/Bookcase/MeetingChatModal 2.tsx
  • src/components/base-ui/Admin/ConfirmModal 2.tsx

📝 Walkthrough

Walkthrough

Deletes thirteen duplicate files (named with " 2" suffix) spanning Admin, Bookcase, Comment, Login, and API/type modules. In the canonical files, the login identifier placeholder and validation error message are updated from email-only to email-or-nickname, and the email verification countdown is doubled from 300 to 600 seconds.

Changes

Duplicate file removal and login identifier updates

Layer / File(s) Summary
Login identifier placeholder and validation
src/components/base-ui/Login/components/LoginForm.tsx, src/components/base-ui/Login/hooks/useLoginForm.tsx
Placeholder text and empty-field validation error updated from "이메일" to "이메일 또는 닉네임".
Email verification countdown duration
src/components/base-ui/Join/steps/useEmailVerification.ts
setTimeLeft initial value changed from 300 to 600 on successful verifyEmail call.
Deleted duplicate component/hook files
src/components/base-ui/Admin/ConfirmModal 2.tsx, src/components/base-ui/Admin/Toast 2.tsx, src/components/base-ui/Bookcase/MeetingChatModal 2.tsx, src/components/base-ui/Bookcase/MeetingTeamMemberPopover 2.tsx, src/components/base-ui/Comment/comment_section_bookcase 2.tsx, src/components/base-ui/Login/GlobalLoginModal 2.tsx, src/components/base-ui/Login/components/LoginForm 2.tsx, src/components/base-ui/Login/components/LoginIcons 2.tsx, src/components/base-ui/Login/components/SocialLogin 2.tsx, src/components/base-ui/Login/hooks/useLoginForm 2.tsx
All ten " 2" duplicate React component and hook files removed (combined ~1,135 lines deleted).
Deleted duplicate API and type files
src/lib/api/admin/clubs 2.ts, src/types/groups/meetingChats 2.ts, src/types/groups/meetingTopics 2.ts
Three " 2" duplicate API function and TypeScript interface/type modules removed (combined ~252 lines deleted).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • checkmo2025/FE#393: Removes the same set of Login … 2.tsx duplicate components/hooks and applies the same "이메일 또는 닉네임" identifier text changes.
  • checkmo2025/FE#224: Adds/reintroduces the admin clubs API (src/lib/api/admin/clubs.ts) whose " 2" duplicate is deleted in this PR.
  • checkmo2025/FE#232: Reintroduces MeetingChatModal and meeting chat/topic types whose " 2" duplicates are deleted here.

Suggested reviewers

  • shinwokkang

🐰 A tidy warren, no rooms twice,
The " 2" files gone — oh how nice!
An email or nickname you may share,
Ten minutes more to verify your hare.
The burrow stays clean, clutter-free —
One copy's enough, said the rabbit with glee! 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title '6.18 업데이트' is vague and generic, using only a date without conveying meaningful information about the substantial changes being made (removal of multiple components, types, and API functions). Provide a more descriptive title that captures the main objective, such as 'Remove deprecated login and admin components' or 'Clean up unused UI and API modules'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request increases the email verification timeout to 10 minutes and updates the login flow to support logging in with either an email or a nickname. It also performs a major cleanup by deleting various unused components, hooks, and types. Feedback on these changes highlights a critical bug in the login hook where the login identifier (which may be a nickname) is incorrectly assigned to the user's email field, potentially overwriting valid profile data.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

// 1. Validation (Inline Error)
const newErrors: Partial<LoginForm> = {};
if (!form.identifier) newErrors.identifier = "이메일을 입력해주세요.";
if (!form.identifier) newErrors.identifier = "이메일 또는 닉네임을 입력해주세요.";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

로그인 식별자로 이메일뿐만 아니라 닉네임도 입력할 수 있도록 변경되면서, 기존 코드에서 form.identifier를 그대로 email 필드에 대입하는 로직이 버그를 유발할 수 있습니다.

현재 useLoginForm 내의 로그인 처리 로직을 보면 다음과 같은 문제가 있습니다:

  1. 임시 사용자 객체 생성 시 (Line 54-56):

    let loggedInUser: User = {
      email: form.identifier,
    };

    사용자가 닉네임으로 로그인한 경우, user.email 필드에 실제 이메일 주소가 아닌 닉네임이 저장됩니다.

  2. 프로필 조회 성공 시 (Line 65-68):

    loggedInUser = {
      ...profileResponse.result,
      email: form.identifier
    };

    getProfile()을 통해 백엔드로부터 올바른 프로필 정보(profileResponse.result)를 받아왔음에도 불구하고, email 필드를 다시 form.identifier(닉네임일 수 있음)로 덮어쓰고 있습니다.

해결 방안

  • getProfile() 성공 시에는 email을 form.identifier로 덮어쓰지 않고, 백엔드에서 반환한 profileResponse.result.email을 그대로 사용하도록 수정해야 합니다.
  • getProfile() 실패 시의 폴백(loggedInUser)에서도 form.identifier가 이메일 형식인지 검증한 후 대입하거나, 프로필 조회 실패 시에는 이메일 필드를 비워두는 것이 안전합니다.

@yhi9839
yhi9839 merged commit 300945f into main Jun 21, 2026
3 checks passed

This branch was successfully deployed

1 active deployment
Preview — 1ea0d272 Deployed Jun 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants