Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughSummary by CodeRabbit릴리스 노트
Walkthrough과정 목록 정렬, WebSocket 엔드포인트 동적 생성, 단원 편집/삭제 흐름 변경(삭제 확인 모달 추가 및 캐시 무효화 확장), UI 스타일/폰트 최적화 및 일부 라우트 추가를 포함한 변경입니다. Changes
Sequence Diagram(s)(생성 조건 미충족 — 해당 섹션 생략) Estimated code review effort🎯 3 (보통) | ⏱️ ~23분 Possibly related PRs
Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 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: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/pages/manage-assignment/ui/AssignmentManageActionsBar.tsx (1)
25-30:⚠️ Potential issue | 🟠 Major버튼의
type속성과aria-label추가하여 접근성 개선해주세요.25번 줄과 28번 줄의
<button>요소가type속성 없이 렌더링되고 있어, 폼 내부에서 의도치 않은submit동작이 발생할 수 있으며, 스크린리더 사용자는 버튼의 용도를 파악하지 못합니다.type="button"과aria-label을 명시하여 명확한 의도를 표현하세요.🔧 제안 수정안
- <button onClick={() => navigate(ROUTES.ADMIN.ASSIGNMENTS.EDIT(id))}> + <button + type='button' + aria-label='과제 수정' + onClick={() => navigate(ROUTES.ADMIN.ASSIGNMENTS.EDIT(id))}> <EditIcon className='w-3.5 h-4' /> </button> - <button onClick={handleOnDelete}> + <button type='button' aria-label='과제 삭제' onClick={handleOnDelete}> <DeleteIcon className='w-3.5 h-4' /> </button>참고 문서:
- MDN
<button>: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button- MDN
aria-label: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/pages/manage-assignment/ui/AssignmentManageActionsBar.tsx` around lines 25 - 30, The two button elements that call navigate(ROUTES.ADMIN.ASSIGNMENTS.EDIT(id)) and handleOnDelete should explicitly set type="button" to avoid unintended form submits and add descriptive aria-labels (e.g., aria-label="Edit assignment" for the EditIcon button and aria-label="Delete assignment" for the DeleteIcon button) so screen readers understand their purpose; update the JSX for the buttons wrapping EditIcon and DeleteIcon accordingly.
🤖 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/features/assignment/run-assignment/lib/useCodeExecution.ts`:
- Around line 12-16: baseURL/env guard and insecure token handling: ensure
import.meta.env.VITE_API_BASE_URL is validated before using replace (avoid
runtime crash in baseURL.replace) by adding a guard in the module (used when
computing baseURL/wsURL) and fail-fast or return early from runCode if not set;
construct the WebSocket URL using the URL API (e.g., build new URL('/ws/conn',
baseURL) and set search params via url.searchParams.set('token',
encodeURIComponent(accessToken || '')) to avoid sending token=undefined, and
ensure runCode (which creates new WebSocket) either encodes a real token or
aborts with a clear error when accessToken is missing.
In `@src/pages/admin/units/ui/UnitFormLayout.tsx`:
- Around line 54-63: Update the ConfirmModal onConfirm handler in UnitFormLayout
(the JSX where ConfirmModal is rendered) so that it first calls
setIsDeleteModalOpen(false) to close the modal immediately and then
conditionally invokes the onDelete callback only if it is defined; replace the
current onConfirm={onDelete ?? (() => {})} with a handler that closes the modal
then calls onDelete?.() to avoid duplicate/accidental repeated requests.
In `@src/pages/course-overview/ui/CourseContent.tsx`:
- Line 42: The paragraph element in CourseContent.tsx uses an invalid Tailwind
class "mb"; update the className on the <p> in the CourseContent component to
use a valid margin-bottom utility such as "mb-4" (or another appropriate size
like "mb-3"/"mb-2") so the bottom margin is applied; ensure you only change the
'mb' token in the className string to the chosen 'mb-*' utility.
---
Outside diff comments:
In `@src/pages/manage-assignment/ui/AssignmentManageActionsBar.tsx`:
- Around line 25-30: The two button elements that call
navigate(ROUTES.ADMIN.ASSIGNMENTS.EDIT(id)) and handleOnDelete should explicitly
set type="button" to avoid unintended form submits and add descriptive
aria-labels (e.g., aria-label="Edit assignment" for the EditIcon button and
aria-label="Delete assignment" for the DeleteIcon button) so screen readers
understand their purpose; update the JSX for the buttons wrapping EditIcon and
DeleteIcon accordingly.
🪄 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: d4e43f4e-741d-4797-94b5-459511c3f772
⛔ Files ignored due to path filters (2)
public/fonts/JetBrainsMono-Regular.ttfis excluded by!**/*.ttfpublic/fonts/JetBrainsMono-Regular.woff2is excluded by!**/*.woff2
📒 Files selected for processing (11)
src/entities/course/api/courseQueries.tssrc/features/assignment/run-assignment/lib/useCodeExecution.tssrc/features/unit/edit-unit/model/useEditUnit.tssrc/index.csssrc/pages/admin/units/UnitLayout.tsxsrc/pages/admin/units/ui/UnitFormLayout.tsxsrc/pages/admin/units/ui/UnitList.tsxsrc/pages/course-overview/ui/CourseContent.tsxsrc/pages/manage-assignment/ui/AssignmentManageActionsBar.tsxsrc/pages/submit-assignment/ui/AssignmentProblem.tsxsrc/shared/config/routes.ts
⚙️ Related ISSUE Number
Related #89
📄 Work Description
window.confirm→ConfirmModal로 교체 (단원 삭제)VITE_API_BASE_URL기반으로 동적 생성📷 Screenshot
💬 To Reviewers
🔗 Reference