Skip to content

Hotfix : 디자인 및 UI/UX 요소 개선#155

Merged
GulSam00 merged 12 commits into
mainfrom
develop
Mar 5, 2026
Merged

Hotfix : 디자인 및 UI/UX 요소 개선#155
GulSam00 merged 12 commits into
mainfrom
develop

Conversation

@GulSam00

@GulSam00 GulSam00 commented Mar 5, 2026

Copy link
Copy Markdown
Owner

📌 PR 제목

[Type] : 작업 내용 요약

📌 변경 사항

💬 추가 참고 사항

GulSam00 and others added 12 commits March 6, 2026 00:26
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
singcode Ready Ready Preview, Comment Mar 5, 2026 4:37pm

@GulSam00 GulSam00 merged commit 83b6903 into main Mar 5, 2026
1 check passed
@qodo-code-review

Copy link
Copy Markdown

Review Summary by Qodo

UI/UX improvements, documentation, and component enhancements

✨ Enhancement 🐞 Bug fix

Grey Divider

Walkthroughs

Description
• Add Claude AI guidance documentation for repository and web app
• Fix MarqueeText animation stuttering and add mobile click support
• Improve GradientText color visibility and remove unnecessary styling
• Add point display and check-in reward UI to CheckInModal
• Add point input field to ThumbUpModal for direct value entry
• Enhance SearchResultCard karaoke number area with click interaction
• Fix ChatBot positioning and add external host access for dev server
• Improve RankingItem layout and GradientText styling consistency
• Comment out ChatBot toggle checkbox feature for future use
Diagram
flowchart LR
  A["Documentation"] -->|CLAUDE.md| B["Repository & Web App Guidance"]
  C["Component Fixes"] -->|MarqueeText| D["Animation & Mobile Support"]
  C -->|GradientText| E["Color Visibility Improvement"]
  C -->|ChatBot| F["Position & Host Config"]
  G["Feature Enhancements"] -->|CheckInModal| H["Point Display & Rewards"]
  G -->|ThumbUpModal| I["Direct Point Input"]
  G -->|SearchResultCard| J["Karaoke Number Interaction"]
  K["Layout Improvements"] -->|RankingItem| L["Refined Layout & Styling"]
  M["Dev Config"] -->|package.json| N["External Host Access"]
Loading

Grey Divider

File Changes

1. CLAUDE.md 📝 Documentation +74/-0

Add root-level Claude AI guidance documentation

CLAUDE.md


2. apps/web/CLAUDE.md 📝 Documentation +145/-0

Add comprehensive web app Claude AI guidance

apps/web/CLAUDE.md


3. apps/web/package.json ⚙️ Configuration changes +1/-1

Enable external host access for dev server

apps/web/package.json


View more (9)
4. apps/web/src/app/info/page.tsx ✨ Enhancement +1/-1

Update point display gradient colors

apps/web/src/app/info/page.tsx


5. apps/web/src/app/search/ChatBot.tsx 🐞 Bug fix +1/-1

Fix ChatBot fixed positioning on mobile

apps/web/src/app/search/ChatBot.tsx


6. apps/web/src/app/search/HomePage.tsx ✨ Enhancement +36/-9

Comment out ChatBot toggle and adjust scroll height

apps/web/src/app/search/HomePage.tsx


7. apps/web/src/app/search/SearchResultCard.tsx ✨ Enhancement +9/-3

Add click interaction to karaoke number area

apps/web/src/app/search/SearchResultCard.tsx


8. apps/web/src/components/CheckInModal.tsx ✨ Enhancement +36/-3

Add current points and check-in reward display

apps/web/src/components/CheckInModal.tsx


9. apps/web/src/components/MarqueeText.tsx 🐞 Bug fix +8/-3

Fix animation stuttering and add pause on click

apps/web/src/components/MarqueeText.tsx


10. apps/web/src/components/RankingItem.tsx ✨ Enhancement +12/-14

Refactor layout structure and improve spacing

apps/web/src/components/RankingItem.tsx


11. apps/web/src/components/ThumbUpModal.tsx ✨ Enhancement +19/-1

Add direct point input field and update colors

apps/web/src/components/ThumbUpModal.tsx


12. apps/web/src/components/reactBits/GradientText.tsx ✨ Enhancement +1/-1

Remove unnecessary rounded border styling

apps/web/src/components/reactBits/GradientText.tsx


Grey Divider

Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Mar 5, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Remediation recommended

1. MarqueeText important 표기 불일치 🐞 Bug ✓ Correctness
Description
MarqueeText에서 애니메이션 중지용 클래스가 group-hover:animate-none!, animate-none! 형태로 변경되어, 코드베이스 내 다른
important 표기(!text-* 등)와 불일치합니다. Tailwind/tailwind-merge 처리에 따라 hover/click으로 애니메이션을 멈추려는 의도가
실제로 적용되지 않을 수 있습니다.
Code

apps/web/src/components/MarqueeText.tsx[R33-46]

    <div
      ref={containerRef}
      className={cn('group w-full overflow-hidden', className)}
-      onClick={onClick}
+      onClick={() => {
+        if (isOverflowing) setIsAnimationPaused(p => !p);
+        onClick?.();
+      }}
    >
      <div
        className={cn(
          'flex w-max items-center',
-          isOverflowing && 'animate-marquee group-hover:!animate-none',
+          isOverflowing && 'animate-marquee group-hover:animate-none!',
+          isAnimationPaused && 'animate-none!',
        )}
Evidence
MarqueeText는 overflow 시 marquee 애니메이션을 돌리고 hover/클릭으로 멈추게 하려는 로직인데, 애니메이션 중지 클래스 표기가 코드베이스의 다른
important 사용 패턴(leading !)과 다릅니다. 이 불일치가 Tailwind 생성/병합 단계에서 원하는 override가 되지 않는 원인이 될 수 있습니다.

apps/web/src/components/MarqueeText.tsx[33-55]
apps/web/src/components/ui/dropdown-menu.tsx[59-66]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`MarqueeText`의 애니메이션 중지(hover/click) 클래스가 `animate-none!`/`group-hover:animate-none!` 형태로 변경되어, 코드베이스 내 다른 important 패턴과 불일치합니다. Tailwind 생성/`tailwind-merge` 병합 과정에서 의도한 override가 적용되지 않을 수 있어 marquee가 멈추지 않는 회귀 가능성이 있습니다.

## Issue Context
- `cn()`은 `tailwind-merge`를 사용하므로, 클래스 충돌/우선순위 처리가 중요합니다.
- 코드베이스 다른 곳은 leading `!` 형태(`...:!text-destructive`)로 important를 사용 중입니다.

## Fix Focus Areas
- apps/web/src/components/MarqueeText.tsx[33-46]
- apps/web/src/components/ui/dropdown-menu.tsx[59-66]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. CheckInModal user query 중복 🐞 Bug ⛯ Reliability
Description
CheckInModal이 useUserQuery()를 새로 호출하면서, 이미 Header에서 동일 queryKey로 호출 중인 사용자 조회가 중복 구독됩니다. 상황에 따라 모달
오픈 시 불필요한 refetch/401 에러 노이즈가 늘 수 있으므로, Header에서 받은 user/point를 props로 전달하는 구조가 더 안전합니다.
Code

apps/web/src/components/CheckInModal.tsx[R30-33]

+  const { data: user } = useUserQuery();
+  const point = user?.point ?? 0;
+  const CHECK_IN_REWARD = 30;
+
Evidence
RootLayout에서 Header가 항상 렌더링되고, Header는 이미 useUserQuery()를 호출합니다. 그 상태에서 CheckInModal까지
useUserQuery()를 추가 호출하면 동일 데이터 소스를 두 컴포넌트에서 중복으로 구독/트리거할 수 있습니다. 또한 /api/user는 비인증 시 401을 반환하므로,
비로그인 사용자에게는 에러/재요청 노이즈가 커질 수 있습니다.

apps/web/src/components/CheckInModal.tsx[28-35]
apps/web/src/Header.tsx[19-55]
apps/web/src/app/layout.tsx[101-109]
apps/web/src/app/api/user/route.ts[8-28]
apps/web/src/lib/api/user.ts[6-9]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`CheckInModal`이 `useUserQuery()`를 직접 호출하면서, 전역적으로 항상 렌더링되는 `Header`의 `useUserQuery()`와 중복됩니다. 이는 모달 오픈 시점의 불필요한 구독/재요청 및(특히 비로그인 401 케이스에서) 에러 노이즈 증가 가능성이 있습니다.

## Issue Context
- `Header`는 `RootLayout`에서 항상 렌더링됩니다.
- `Header`가 이미 `useUserQuery()` 결과로 `user`를 확보하고 `isLogin`을 계산합니다.
- `/api/user`는 비인증 시 401을 반환합니다.

## Fix Focus Areas
- apps/web/src/components/CheckInModal.tsx[28-35]
- apps/web/src/Header.tsx[19-55]
- apps/web/src/app/layout.tsx[101-109]
- apps/web/src/app/api/user/route.ts[8-28]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

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.

1 participant