Skip to content

Feat: 개발 QA 1차(사이드바 카테고리 수 제한 수정) #119

Merged
jjangminii merged 1 commit intodevelopfrom
fix/#117/sidebar-creat-item
Sep 19, 2025
Merged

Feat: 개발 QA 1차(사이드바 카테고리 수 제한 수정) #119
jjangminii merged 1 commit intodevelopfrom
fix/#117/sidebar-creat-item

Conversation

@jjangminii
Copy link
Collaborator

@jjangminii jjangminii commented Sep 19, 2025

📌 Related Issues

관련된 Issue를 태그해주세요. (e.g. - close #25)

📄 Tasks

  • 사이드바 카테고리 10개 제한

⭐ PR Point (To Reviewer)

📷 Screenshot

스크린샷 2025-09-19 오후 4 44 22

Summary by CodeRabbit

  • New Features
    • 카테고리 생성 상한을 도입했습니다: 최대 10개까지 생성할 수 있습니다.
    • “나의 북마크” 목록의 새 항목 만들기 옵션은 카테고리가 10개 미만일 때만 표시됩니다. 한도에 도달하면 생성 옵션이 자동으로 숨겨집니다.
    • 생성 옵션이 표시되는 경우, 기존 생성 동작은 동일하게 유지됩니다.

@jjangminii jjangminii linked an issue Sep 19, 2025 that may be closed by this pull request
@vercel
Copy link

vercel bot commented Sep 19, 2025

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

Project Deployment Preview Comments Updated (UTC)
pinback-client-client Ready Ready Preview Comment Sep 19, 2025 7:46am

@coderabbitai
Copy link

coderabbitai bot commented Sep 19, 2025

Walkthrough

사이드바에서 카테고리 생성 항목의 표시 로직을 변경했다. 카테고리 최대 개수(10)를 도입하고, 현재 개수를 계산해 최대치 미만일 때만 생성 버튼을 렌더링한다. 외부 인터페이스 변경은 없으며 onClick 동작은 그대로 유지된다.

Changes

Cohort / File(s) Summary
Sidebar 카테고리 생성 제한
apps/client/src/shared/components/sidebar/Sidebar.tsx
카테고리 최대치 상수(MAX_CATEGORIES=10) 추가, 현재 개수 계산 로직 도입, canCreateMore 조건에 따라 CreateItem 조건부 렌더링으로 제어 흐름 변경. 외부 API/익스포트 변경 없음.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User as 사용자
  participant SB as Sidebar
  participant CL as CategoryList
  participant UI as UI(Render)

  User->>SB: 사이드바 열기
  SB->>CL: 카테고리 목록 조회
  CL-->>SB: categories (N개)
  SB->>SB: categoryCount = N, canCreateMore = N < 10
  alt canCreateMore = true
    SB->>UI: 목록 + "CreateItem" 렌더
  else canCreateMore = false
    SB->>UI: 목록만 렌더(생성 버튼 숨김)
  end
  Note over UI: onClick 핸들러는 기존과 동일
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

feat, frontend

Suggested reviewers

  • jllee000
  • constantly-dev

Poem

토끼는 탭을 톡, 사이드바를 콕!
열 개 채우면 살짝 숨겨 둔 버튼
“이제 그만~” 바람결에 속삭여요.
클릭의 길은 그대로,
깔끔한 발자국만 남겼지요. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Linked Issues Check ⚠️ Warning 변경사항은 Sidebar.tsx에서 카테고리 수를 10개로 제한하고 생성 항목을 조건부로 렌더링하도록 구현하여 [#117]의 사이드바 QA 목적과 직접적으로 일치합니다. 그러나 링크된 다른 이슈인 [#25]의 Progress 컴포넌트 구현 요구사항들은 이번 PR 범위에 전혀 포함되어 있지 않습니다. 결론적으로 본 PR은 [#117]에 대해서는 준수하지만 링크된 전체 이슈 집합을 모두 충족하지는 않습니다. 해결책으로 PR에서 실제로 처리하는 이슈를 명확히 하여 설명에서 [#25]를 제거하거나, 만약 [#25]도 포함해야 한다면 해당 기능을 별도 커밋/PR로 분리해 구현해 주세요; 또한 PR 본문에 닫는 이슈 번호를 다시 확인해 표기해 주시기 바랍니다.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed PR 제목은 변경의 핵심인 "사이드바 카테고리 수 제한 수정"을 명확히 담고 있어 변경 내용과 일치합니다. 다만 "개발 QA 1차(정민
Out of Scope Changes Check ✅ Passed 변경된 파일은 apps/client/src/shared/components/sidebar/Sidebar.tsx로 요약되며 작업 내용은 카테고리 개수 상수(MAX_CATEGORIES = 10) 도입과 CreateItem의 조건부 렌더링 추가에 국한되어 있습니다. 이 변경은 링크된 이슈 [#117]의 범위 내 기능 수정에 해당하며 다른 모듈이나 unrelated 파일 수정은 확인되지 않습니다. 따라서 범위를 벗어난 변경은 발견되지 않습니다.
Description Check ✅ Passed PR 설명은 템플릿의 필수 항목인 Related Issues에 close #117을 기재하고 Tasks에 "사이드바 카테고리 10개 제한"을 명시했으며 스크린샷도 첨부되어 있어 변경 목적과 결과를 충분히 전달합니다. "PR Point" 섹션은 비어 있지만 템플릿의 핵심 정보(관련 이슈·작업 요약)는 충족되어 전반적으로 설명이 대부분 완전합니다. 따라서 리뷰를 진행하기에 필요한 기본 정보는 제공되어 있습니다.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/#117/sidebar-creat-item

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.

@github-actions github-actions bot added the fix 버그 수정하라 러브버그 label Sep 19, 2025
@jjangminii jjangminii changed the title feat: 사이드바 카테고리 10개 제한 Feat: 개발 QA 1차(정민 | 사이드바 카테고리 수 제한 수정) Sep 19, 2025
@github-actions
Copy link

✅ Storybook chromatic 배포 확인:
🐿️ storybook

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
apps/client/src/shared/components/sidebar/Sidebar.tsx (1)

169-176: 한도 도달 시 버튼 숨김만으로는 피드백 부족 — 안내/비활성 상태 제공 제안

생성 버튼이 사라지면 사용자가 이유를 알기 어렵습니다. 안내 문구(aria‑live 포함)나 비활성 상태 표시를 함께 제공하면 UX/a11y가 좋아집니다.

-              {canCreateMore && (
-                <CreateItem
-                  onClick={() => {
-                    setToastIsOpen(false);
-                    openCreate();
-                  }}
-                />
-              )}
+              {canCreateMore ? (
+                <CreateItem
+                  onClick={() => {
+                    setToastIsOpen(false);
+                    openCreate();
+                  }}
+                />
+              ) : (
+                <li
+                  className="px-[0.8rem] py-[0.8rem] text-gray-500 body4-r"
+                  aria-live="polite"
+                >
+                  카테고리는 최대 {MAX_CATEGORIES}개까지 생성할 수 있어요
+                </li>
+              )}
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f2303de and cfdaa0e.

📒 Files selected for processing (1)
  • apps/client/src/shared/components/sidebar/Sidebar.tsx (2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-17T09:18:13.818Z
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#102
File: apps/extension/src/components/modalPop/ModalPop.tsx:166-172
Timestamp: 2025-07-17T09:18:13.818Z
Learning: In apps/extension/src/components/modalPop/ModalPop.tsx, the categories array should include "안 읽은 정보" (Unread Information) as the first default category that cannot be deleted. This default category is used consistently across the client-side dashboard and should be protected from deletion in the extension as well.

Applied to files:

  • apps/client/src/shared/components/sidebar/Sidebar.tsx
🧬 Code graph analysis (1)
apps/client/src/shared/components/sidebar/Sidebar.tsx (1)
apps/client/src/shared/components/sidebar/CreateItem.tsx (1)
  • CreateItem (9-27)
🔇 Additional comments (1)
apps/client/src/shared/components/sidebar/Sidebar.tsx (1)

116-118: 기본 카테고리 포함 시 off-by-one 가능성 — 한도 계산 검증/보정 필요

파일: apps/client/src/shared/components/sidebar/Sidebar.tsx — 현재 MAX_CATEGORIES(=10)를 전체 categories.length로 비교하고 있어, 삭제 불가 기본 카테고리(예: "안 읽은 정보")가 포함되면 사용자가 생성할 수 있는 카테고리 수가 실질적으로 10보다 작아질 수 있음.

  • 조치(우선): 사용자 생성 카테고리만 세도록 변경. 서버 스키마에 isDefault/is_system 등 플래그가 있으면 해당 필드로 필터링하고, 없으면 이름 비교('안 읽은 정보')를 임시 fallback으로 사용.
  • 권장: MAX_CATEGORIES를 모듈 상단(또는 공용 상수 파일)으로 호이스팅해 재선언 방지.

제안 diff:

-  const MAX_CATEGORIES = 10;
-  const categoryCount = categories?.categories?.length ?? 0;
-  const canCreateMore = categoryCount < MAX_CATEGORIES;
+  const MAX_CATEGORIES = 10; // 사용자 생성 가능 개수 기준
+  const allCategories = categories?.categories ?? [];
+  const userCategories = allCategories.filter(
+    (c) => !('isDefault' in c && (c as any).isDefault) && c.name !== '안 읽은 정보'
+  );
+  const canCreateMore = userCategories.length < MAX_CATEGORIES;

참고: rg 검색이 일부 실패하여 repository 전반에서 isDefault 필드나 '안 읽은 정보' 하드코딩 존재 여부는 아직 확정되지 않음 — 서버 응답 타입 또는 categories 타입 정의 확인 필요.

@jjangminii jjangminii merged commit be0c2a7 into develop Sep 19, 2025
10 checks passed
@jjangminii jjangminii changed the title Feat: 개발 QA 1차(정민 | 사이드바 카테고리 수 제한 수정) Feat: 개발 QA 1차(사이드바 카테고리 수 제한 수정) Sep 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix 버그 수정하라 러브버그

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] sp1 QA 사이드바 (기능 수정) 1차 반영

1 participant