Conversation
Walkthrough팀피셜록 공유 가이드 UI와 레이아웃을 조정하고, 두 경로에 Next.js의 동적 메타데이터 생성 함수를 추가했으며 파비콘 설정과 스크롤바 숨김 유틸을 도입했습니다. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/app/(main)/teampsylog/[uuid]/page.tsx (1)
16-26: 공용 API 래퍼를 재사용해 응답 스키마 검증을 일관화하세요.현재는
res.data?.result?.requesterName만 읽어isSuccess실패 케이스를 명시적으로 처리하지 않습니다.src/libs/api/teampsylog.ts의getRequesterInfo를 사용하면 타입/검증 로직을 중복 없이 맞출 수 있습니다.♻️ 제안 수정안
-import axios from 'axios'; +import { getRequesterInfo } from '@/libs/api/teampsylog'; ... try { - const res = await axios.get( - `${process.env.NEXT_PUBLIC_API_BASE_URL}/teamficial-log/requester`, - { - params: { - requesterUuid: uuid, - }, - }, - ); - - userName = res.data?.result?.requesterName ?? '사용자'; + const requester = await getRequesterInfo(uuid); + userName = requester.requesterName ?? '사용자'; } catch (error) { console.error('Failed to fetch requester data:', error); }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/app/`(main)/teampsylog/[uuid]/page.tsx around lines 16 - 26, The code performs a raw axios.get and reads res.data?.result?.requesterName without using the shared API wrapper or validating isSuccess; replace the axios call in page.tsx with the getRequesterInfo function from src/libs/api/teampsylog.ts and use its typed response: call getRequesterInfo({ requesterUuid: uuid }), check response.isSuccess before accessing response.result.requesterName, set userName = response.result.requesterName ?? '사용자' on success, and handle non-success or thrown errors using the same error/validation flow the library uses to keep response schema handling consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/app/`(main)/teampsylog/_components/KeywordBar.tsx:
- Around line 66-70: The dismissedByUser ref prevents re-render so
showShareGuide (computed from dismissedByUser.current and isEditMode) doesn't
update when the X button is clicked; change dismissedByUser from useRef to
useState (e.g., [dismissedByUser, setDismissedByUser]) and update the X-button
click handler to call setDismissedByUser(true) so React re-renders and
showShareGuide (now computed from dismissedByUser and isEditMode) updates
correctly; also replace other places that read/write dismissedByUser.current
(lines referencing dismissedByUser) to use the state variable and setter.
In `@src/app/`(main)/teampsylog/[uuid]/page.tsx:
- Around line 16-23: The axios GET call that fetches requester data in
src/app/(main)/teampsylog/[uuid]/page.tsx currently has no timeout and can block
server-render paths; add a timeout option to the axios request config (e.g.,
timeout: 3000) in the existing axios.get call so the request fails fast, and
wrap the call in the existing error handling path to handle timeout errors
gracefully; make the exact same change for the identical axios.get invocation in
src/app/(main)/teampsylog/head/[uuid]/page.tsx so both metadata/server-render
routes use the timeout.
---
Nitpick comments:
In `@src/app/`(main)/teampsylog/[uuid]/page.tsx:
- Around line 16-26: The code performs a raw axios.get and reads
res.data?.result?.requesterName without using the shared API wrapper or
validating isSuccess; replace the axios call in page.tsx with the
getRequesterInfo function from src/libs/api/teampsylog.ts and use its typed
response: call getRequesterInfo({ requesterUuid: uuid }), check
response.isSuccess before accessing response.result.requesterName, set userName
= response.result.requesterName ?? '사용자' on success, and handle non-success or
thrown errors using the same error/validation flow the library uses to keep
response schema handling consistent.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5471ca45-3eb2-48fe-84ea-899edb89f79c
⛔ Files ignored due to path filters (8)
public/apple-touch-icon.pngis excluded by!**/*.pngpublic/favicon.icois excluded by!**/*.icopublic/file.svgis excluded by!**/*.svgpublic/globe.svgis excluded by!**/*.svgpublic/next.svgis excluded by!**/*.svgpublic/vercel.svgis excluded by!**/*.svgpublic/window.svgis excluded by!**/*.svgsrc/app/favicon.icois excluded by!**/*.ico
📒 Files selected for processing (8)
src/app/(main)/project/[id]/page.tsxsrc/app/(main)/teampsylog/[uuid]/page.tsxsrc/app/(main)/teampsylog/_components/CommentPage.tsxsrc/app/(main)/teampsylog/_components/KeywordBar.tsxsrc/app/(main)/teampsylog/_components/KeywordGuideBalloon.tsxsrc/app/(main)/teampsylog/_components/LogNote.tsxsrc/app/globals.csssrc/app/layout.tsx
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/app/`(main)/teampsylog/_components/KeywordBar.tsx:
- Around line 66-68: The showShareGuide visibility should not depend on
isEditMode; currently showShareGuide is computed as !dismissedByUser &&
!isEditMode which hides the toast in edit mode—change the logic to only use
dismissedByUser so the guide is shown unless the user dismissed it. Update the
declaration that computes showShareGuide (referencing showShareGuide,
dismissedByUser, setDismissedByUser, and isEditMode) to remove the !isEditMode
check and ensure any handlers that toggle setDismissedByUser remain intact;
verify any conditional rendering using showShareGuide now relies solely on
dismissedByUser.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: f3a682d4-8d0e-4d21-917f-cfbfa0a878a3
📒 Files selected for processing (1)
src/app/(main)/teampsylog/_components/KeywordBar.tsx
✅ PR 유형
어떤 변경 사항이 있었나요?
📌 관련 이슈번호
✅ Key Changes
📸 스크린샷 or 실행영상
🎸 기타 사항 or 추가 코멘트
Summary by CodeRabbit
릴리스 노트
New Features
UI Improvements