Skip to content

[CHORE] 아이콘 신규#137

Merged
JangYEhoon00 merged 10 commits intomainfrom
chore/#136-icon
Feb 24, 2026
Merged

[CHORE] 아이콘 신규#137
JangYEhoon00 merged 10 commits intomainfrom
chore/#136-icon

Conversation

@JangYEhoon00
Copy link
Copy Markdown
Collaborator

@JangYEhoon00 JangYEhoon00 commented Feb 20, 2026

🔥 연관 이슈

🚀 작업 내용

작업 전
스크린샷 2026-02-20 오후 5 29 59
작업 후
스크린샷 2026-02-20 오후 5 30 11

새로운 아이콘을 추가했습니다.

🤔 고민했던 내용

이번 작업 중 기존 에셋인 navbar-arrow.svg 파일이 다른 아이콘들과 달리 width, height, fill 값이 current로 설정되어 있지 않은 점을 확인했습니다.

해당 파일의 일관성을 맞추기 위해 수정을 고민하였으나, 이름에 맞게 의도된 파일 같아 기존 코드를 유지하기로 결정했습니다!

💬 리뷰 중점사항

의도하지 않은 값이라면 수정하겠습니다. 또한 누락된 값이 있을 경우 알려주시면 감사하겠습니다!

Summary by CodeRabbit

  • 새로운 기능

    • UI 아이콘 세트가 대폭 확장되어 약 24개의 신규 아이콘이 추가되었습니다(예: 활동보고서, 캘린더, 체크볼드, 청소, 코멘트, 연락처, 큐브, 피드, 하트, 링크, 열린책, 물음표, 수리, 전송, 건너뛰기, 스피너, 별 등).
    • 확장된 아이콘은 앱 전반에서 즉시 사용 가능하며, 사용 가능한 아이콘 목록을 조회할 수 있는 공개된 아이콘 이름 리스트(iconNames)가 추가되었습니다.
  • 수정

    • 뒤로가기 버튼의 아이콘이 일관된 화살표 아이콘으로 변경되어 작은 화면이 아닌 경우에도 통일된 표시가 보입니다.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 20, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

src/shared/ui/assets/index.tsx에 다수의 SVG 아이콘 임포트와 이를 반영한 Icons 매핑 확장이 추가되었고, export const iconNames = Object.keys(Icons) as IconName[]가 새로 도입되었습니다. 또한 src/shared/ui/NavBack/NavBack.tsx의 비-스몰 분기에서 navbarArrow 대신 arrowLeft 아이콘을 사용하도록 변경되었습니다.

Changes

Cohort / File(s) Summary
아이콘 매핑 확장
src/shared/ui/assets/index.tsx
다수의 SVG 임포트 추가 및 Icons 객체에 새로운 키들 추가(예: activityReport, calendar, checkBold, cleaning, comment, contacts, cube, eye, feed, heart, information, like, link, openBook, plusMinus, questionMark, repair, send, shortReport, skip, spinner, star 등). IconName 타입 유지, iconNames 배열(=Object.keys(Icons) as IconName[]) 추가.
NavBack 아이콘 변경
src/shared/ui/NavBack/NavBack.tsx
비-스몰(size !== 'sm') 분기에서 렌더되는 아이콘 이름을 navbarArrow에서 arrowLeft로 변경(크기 클래스 유지).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • keemsebin
  • ujinsim
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목은 '[CHORE] 아이콘 신규'로 PR의 주요 변경사항(새로운 아이콘 추가)을 명확하게 요약하고 있습니다.
Description check ✅ Passed PR 설명이 템플릿의 모든 주요 섹션(연관 이슈, 작업 내용, 고민했던 내용, 리뷰 중점사항)을 포함하고 있으며 이미지와 함께 구체적으로 작성되었습니다.
Linked Issues check ✅ Passed PR은 #136에서 요구한 여러 아이콘 추가 작업을 수행했습니다. 'activityReport'(활동보고서), 'questionMark'(FAQ), 'contacts'(동아리원 명단), 'repair'(시설보수), 'feed'(동아리 피드), 'star'(동아리 점수), 'cleaning'(청소), 'plusMinus'(가산점/감점) 등의 아이콘들이 추가되었으며, 새로운 iconNames 내보내기도 추가되었습니다.
Out of Scope Changes check ✅ Passed NavBack.tsx 파일의 아이콘 참조 변경(navbarArrow에서 arrowLeft로)은 삭제된 아이콘을 대체하기 위한 범위 내 수정으로 보이며, 모든 변경사항은 아이콘 시스템 업데이트와 직접 관련이 있습니다.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/#136-icon

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
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 20, 2026

Update: 2026년 02월 23일 16시 10분 17초
Storybook 미리보기: https://677a9a76c58a295e9421d3ef-yinzpfzjet.chromatic.com/

Copy link
Copy Markdown

@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: 2

🤖 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/shared/ui/assets/index.tsx`:
- Around line 81-92: The Icons mapping has new keys (faq, handleApply,
joinActivity, manage, activityReport, clubFeed, clubMember, clubScore,
doubleArrow, repair, cleaning, ScoreAdjust) appended at the bottom, making the
object unordered and harder to maintain; reorder the entries inside the exported
Icons object so all keys are in alphabetic order (e.g., activityReport,
cleaning, clubFeed, clubMember, clubScore, doubleArrow, faq, handleApply,
joinActivity, manage, repair, ScoreAdjust) to keep consistent sorting and avoid
accidental duplicate keys while preserving the existing import bindings and
symbol names.
- Line 92: The Icons object contains a key written as PascalCase ("ScoreAdjust")
which breaks the camelCase naming convention and will expose 'ScoreAdjust' via
IconName; change the key in the Icons export from ScoreAdjust to scoreAdjust
(i.e., update the property name in the Icons object where "ScoreAdjust:
ScoreAdjust" is defined) so the public API and IconName = keyof typeof Icons use
camelCase consistently while leaving the imported/declared component identifier
(ScoreAdjust) unchanged.

Copy link
Copy Markdown
Contributor

@keemsebin keemsebin left a comment

Choose a reason for hiding this comment

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

수고하셨습니다~ 변경된 아이콘 보니까, navArrow 같은 아이콘은 더 이상 사용하지 않는 아이템 같더라구요! 또 캘린더나 체크표시 등등 없는 아이콘들도 있는 것 같아요. 요 부분도 확인 부탁드립니다~!

arrowUp,Down 같은 경우는 이전 아이콘 인 것 같아서 요부분도 변경 가능할까요??

Image

Comment on lines +12 to +14
import ClubFeed from './clubFeed.svg';
import ClubMember from './clubMember.svg';
import ClubScore from './clubScore.svg';
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.

요런 네이밍이 너무 도메인을 따라가는 네이밍이라 최대한 커먼하게 변수명 지어주시면 좋을 것 같아용

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

b497e64 수정했습니다!

import Drag from './drag.svg';
import Dustpan from './dustpan.svg';
import Etc from './etc.svg';
import Faq from './faq.svg';
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.

개인적으로는 퀘스쳔마크라는 네이밍이 더 어울릴 것 같아요. faq라는 변수명으로 해당 아이콘이 잘 떠오르지 않는 것 같아서요!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

52c8c38 수정했습니다

import Etc from './etc.svg';
import Faq from './faq.svg';
import File from './file.svg';
import HandleApply from './handleApply.svg';
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.

요기도 확장성을 고려했을 때 행위와 특정 도메인을 나타내는 변수명은 좋지 않은 것 같아요! book처럼 딱 떠오를 수 있는 직관적인 네이밍으로 바꿔보는거 어떠실까요??

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

b497e64 최대한 직관적으로 사용하기 편하게 변경했습니다!

Copy link
Copy Markdown
Collaborator

@ujinsim ujinsim left a comment

Choose a reason for hiding this comment

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

고생 많으셨습니다!
navBack 컴포넌트 작업하시면서 해당 부분이 누락된 것 같습니다.
번거로우시겠지만 navbarArrow 아이콘 제거해주시고, arrowLeft 아이콘으로 함께 변경해주시면 감사하겠습니다!

더 직관적인 이름으로 변경했습니다!
Copy link
Copy Markdown

@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.

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@src/shared/ui/assets/index.tsx`:
- Line 71: The export object has the property "cube: Cube" inserted in the wrong
spot (currently between locate and navbarArrow); remove the duplicate "cube:
Cube," entry at line 71 and re-insert a single "cube: Cube" property in
alphabetical order between the "contacts" and "download" entries so the export
list is correctly ordered; locate the export object by looking for the
surrounding identifiers "locate", "navbarArrow", "contacts", and "download" to
make the change.
- Around line 60-61: The exported assets object has the keys "drag" and "dots"
in the wrong alphabetical order; locate the assets mapping in
src/shared/ui/assets/index.tsx (look for the keys drag and dots) and reorder
them so "dots" appears before "drag" (i.e., swap the two entries) to restore
alphabetical ordering.

Copy link
Copy Markdown

@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: 2

🤖 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/shared/ui/assets/index.tsx`:
- Line 38: The icon key and import name use inconsistent camelCase: change the
import and key from Questionmark/questionmark to QuestionMark/questionMark in
the Icons object and update the IconName union to expose 'questionMark' instead
of 'questionmark'; also rename the SVG file to questionMark.svg (or update its
import path) and update all usages/references of the old key (including the
other occurrence at the reported location) to the new questionMark name so types
and runtime keys remain consistent.
- Line 47: The public API exposes a typo: the SVG and its import are named
Spiner/spiner.svg which incorrectly surfaces as 'spiner' in the exported Icons
and IconName types; rename the asset file spiner.svg to spinner.svg, update the
import in src/shared/ui/assets/index.tsx from Spiner to Spinner, update the
Icons mapping key/value to use 'spinner' and Spinner, and then update any usages
of the old 'spiner' key or Spiner symbol so the exported IconName (keyof typeof
Icons) reflects 'spinner' instead of the misspelling.

---

Duplicate comments:
In `@src/shared/ui/assets/index.tsx`:
- Around line 68-69: The Icons object has keys out of alphabetical order: swap
the positions of the contacts and comment entries so comment comes before
contacts, and move the cube entry from after loading/locate into the 'c' group
(near cleaning, close, contacts, comment) so all icon keys in Icons are sorted
alphabetically; update the Icons definition (the object that contains comment,
contacts, cube, loading, locate, etc.) accordingly.

@JangYEhoon00
Copy link
Copy Markdown
Collaborator Author

eb436d2 를 통해 안쓰는 아이콘을 제거했습니다!

Copy link
Copy Markdown

@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: 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/shared/ui/assets/index.tsx`:
- Line 37: Rename the SVG file from questionmark.svg to questionMark.svg and
update the import in src/shared/ui/assets/index.tsx to import QuestionMark from
'./questionMark.svg' so the import matches the filename (maintaining camelCase
consistency with other assets like openBook.svg); then reorder the Icons object
properties so that comment appears before contacts, dots appears before drag,
and move cube from its current position after locate to be grouped near close
and cleaning to restore alphabetical order.

---

Duplicate comments:
In `@src/shared/ui/assets/index.tsx`:
- Around line 66-84: Reorder the entries inside the Icons object to match
alphabetical order: move `comment` so it comes immediately after `close` and
before `contacts`, swap `dots` and `drag` so `dots` precedes `drag`, and move
`cube` to sit after `close` (i.e., `close`, `cube`, `comment`, `contacts`, ...),
ensuring keys `close`, `cube`, `comment`, `contacts`, `dots`, `drag`, `locate`
appear in the corrected sequence.

import Peoples from './peoples.svg';
import Pin from './pin.svg';
import PlusMinus from './plusminus.svg';
import QuestionMark from './questionMark.svg';
Copy link
Copy Markdown

@coderabbitai coderabbitai bot Feb 22, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for questionMark.svg or questionmark.svg files
fd -t f -i 'questionm' src/shared/ui/assets/

Repository: COW-dev/ddingdong-design-system

Length of output: 112


🏁 Script executed:

#!/bin/bash
# List all files in the assets directory to see what exists
ls -la src/shared/ui/assets/ | grep -E '\.(svg|ts|tsx)$'

Repository: COW-dev/ddingdong-design-system

Length of output: 3373


🏁 Script executed:

#!/bin/bash
# Read the specific lines around line 37 in the index.tsx file
head -n 45 src/shared/ui/assets/index.tsx | tail -n 15

Repository: COW-dev/ddingdong-design-system

Length of output: 613


🏁 Script executed:

#!/bin/bash
# Verify the exact Icons object entries around questionMark
sed -n '60,110p' src/shared/ui/assets/index.tsx

Repository: COW-dev/ddingdong-design-system

Length of output: 982


빌드 실패: questionMark.svg 파일이 존재하지 않습니다

37번 줄의 임포트 경로가 './questionMark.svg'(camelCase)를 참조하지만, 실제 파일 시스템에는 questionmark.svg(소문자)만 존재합니다. 이 대소문자 불일치로 인해 빌드가 실패합니다.

SVG 파일을 questionmark.svg에서 questionMark.svg로 리네이밍하세요. 이는 다른 camelCase 파일명(openBook.svg, checkBold.svg, shortReport.svg)과의 일관성도 맞춥니다.

추가: 알파벳 순서 위반 3가지

Icons 객체의 항목이 완전히 정렬되지 않았습니다:

  • commentcontacts 순서 변경 필요 (현재: contacts → comment / 올바름: comment → contacts)
  • dotsdrag 순서 변경 필요 (현재: drag → dots / 올바름: dots → drag)
  • cube를 현재 위치(locate 이후)에서 close/cleaning 근처로 이동
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/shared/ui/assets/index.tsx` at line 37, Rename the SVG file from
questionmark.svg to questionMark.svg and update the import in
src/shared/ui/assets/index.tsx to import QuestionMark from './questionMark.svg'
so the import matches the filename (maintaining camelCase consistency with other
assets like openBook.svg); then reorder the Icons object properties so that
comment appears before contacts, dots appears before drag, and move cube from
its current position after locate to be grouped near close and cleaning to
restore alphabetical order.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check what changes were made in the commit the user referenced
git show eb436d2a4884789a6c95eaaabd184bac4299d396 --stat

echo "---"
echo "Detailed changes in the commit:"
git show eb436d2a4884789a6c95eaaabd184bac4299d396

echo "---"
echo "Current state: Check if questionMark.svg exists (camelCase):"
ls -la src/shared/ui/assets/ | grep -i question

echo "---"
echo "Current Icons object ordering in index.tsx:"
sed -n '56,110p' src/shared/ui/assets/index.tsx

Length of output: 4141


@JangYEhoon00, 변수명은 수정하셨지만 실제 SVG 파일 이름 변경이 누락되었습니다!

🔴 여전히 존재하는 빌드 오류

커밋에서 import 문을 import QuestionMark from './questionMark.svg';로 수정하셨지만, 실제 파일은 여전히 questionmark.svg(소문자)로 존재합니다. 대소문자를 구분하는 파일 시스템에서 빌드가 실패할 것입니다.

필요한 조치:

# 파일 이름을 camelCase로 변경
git mv src/shared/ui/assets/questionmark.svg src/shared/ui/assets/questionMark.svg

📝 추가: 알파벳 순서 문제

Icons 객체에서 다음 3가지 순서 문제가 남아있습니다:

  • Line 68: contactscomment 순서 변경 필요 (comment가 먼저)
  • Line 71: dragdots 순서 변경 필요 (dots가 먼저)
  • Line 82: cube를 현재 위치(locate 이후)에서 close/cleaning 근처로 이동

이 정렬 문제들도 함께 해결해 주시면 코드 일관성이 향상됩니다.


🧬 Code Graph Analysis Results

[No user commentary analyzed; providing potentially relevant snippets only.]

  1. File: src/shared/index.ts, lines 33-33
Icons
  1. File: src/shared/index.ts, lines 34-34
IconName
  1. File: src/shared/index.ts, lines 33-33
iconNames
  1. File: src/shared/ui/Button/Button.stories.tsx, lines 103-110
export const Loading: Story = {
  args: {
    variant: 'primary',
    color: 'blue',
    isLoading: true,
    children: 'PrimaryButton + isLoading(true)',
  },
};

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check what changes were made in the new commit
echo "=== Commit details ==="
git show 52c8c38e61963807b48980a00fd2ccb099a09704 --stat

echo ""
echo "=== Detailed diff ==="
git show 52c8c38e61963807b48980a00fd2ccb099a09704

echo ""
echo "=== Current file state: Check if questionMark.svg exists (camelCase) ==="
ls -la src/shared/ui/assets/ | grep -i question

echo ""
echo "=== Current Icons object to verify ordering ==="
sed -n '56,110p' src/shared/ui/assets/index.tsx

Length of output: 2063


@JangYEhoon00, 완벽합니다! 🎉 파일 이름 변경이 제대로 반영되었고 빌드 오류가 해결되었습니다.

✅ 확인된 수정사항

커밋에서 questionmark.svgquestionMark.svg 파일명 변경이 성공적으로 완료되어 import 문과 파일명이 일치하게 되었습니다. 이제 대소문자를 구분하는 파일 시스템에서도 정상적으로 빌드됩니다.

📝 참고: 알파벳 순서

혹시 시간이 되신다면, Icons 객체의 다음 3가지 순서를 정렬하시면 코드 일관성이 더 향상됩니다:

  1. Line 67-68: commentcontacts 앞으로
  2. Line 70-71: dotsdrag 앞으로
  3. Line 82: cube를 현재 위치(locate 이후)에서 close 근처로 이동

이 부분은 빌드에 영향을 주지 않는 마이너한 정렬 이슈이므로 참고만 부탁드립니다! 👍


🧬 Code Graph Analysis Results

src/shared/index.ts
<snippet 1 lines="33-33">

Icons

</snippet 1>

src/shared/index.ts
<snippet 2 lines="34-34">

IconName

</snippet 2>

src/shared/index.ts
<snippet 3 lines="33-33">

iconNames

</snippet 3>

작업 중 빌드 에러가 발생해 급하게 수정했습니다.
원인은 추가된 색상인 pink가  호버시 색상 값을 가지고 있지 않았기 때문입니다.
카멜 케이스로 변경한 이름(questionMark) 이 반영이 안되어 빌드 오류가 발생했었는데 해결했습니다.
Copy link
Copy Markdown
Collaborator

@ujinsim ujinsim left a comment

Choose a reason for hiding this comment

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

고생하셨습니닷

Copy link
Copy Markdown
Contributor

@keemsebin keemsebin left a comment

Choose a reason for hiding this comment

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

수고하셨습니다~!

@JangYEhoon00 JangYEhoon00 merged commit aa5c51b into main Feb 24, 2026
5 checks passed
@JangYEhoon00 JangYEhoon00 deleted the chore/#136-icon branch February 24, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CHORE] 아이콘 추가

3 participants