Skip to content

[FIX] classname 위치 조정#119

Merged
yougyung merged 3 commits intomainfrom
fix/#118
Nov 28, 2025
Merged

[FIX] classname 위치 조정#119
yougyung merged 3 commits intomainfrom
fix/#118

Conversation

@yougyung
Copy link
Copy Markdown
Collaborator

@yougyung yougyung commented Nov 28, 2025

🔥 연관 이슈

🚀 작업 내용

  • 대상컴포넌트
    • Table classname 속성 위치 변경
    • TextArea wapper classname 속성 추가

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • TextArea 컴포넌트의 래퍼 요소에 커스텀 스타일 지원 추가
  • 기타

    • 버전 1.0.23으로 업데이트
    • 테이블 컴포넌트 스타일 구조 개선

✏️ Tip: You can customize this high-level summary in your review settings.

@yougyung yougyung self-assigned this Nov 28, 2025
@yougyung yougyung linked an issue Nov 28, 2025 that may be closed by this pull request
2 tasks
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Nov 28, 2025

Walkthrough

패키지 버전을 1.0.23으로 업데이트하고, Table 및 TextArea 컴포넌트에서 커스텀 스타일링이 내부 요소에서 외부 래퍼 요소로 이전되었습니다.

Changes

Cohort / File(s) Summary
버전 업데이트
package.json
버전 1.0.22에서 1.0.23으로 업그레이드
스타일링 위치 변경
src/shared/ui/Table/Table.tsx
className 프로퍼티가 내부 table 요소에서 외부 wrapper div로 이동. 외부 div가 cn으로 기본 클래스와 사용자 제공 className을 결합하고, 내부 table은 고정 클래스 세트 사용
TextArea 래퍼 스타일링
src/shared/ui/TextArea/TextArea.tsx
새 공개 프로퍼티 wrapperClassName을 추가하여 외부 Flex wrapper 요소에 커스텀 스타일 적용 가능하게 변경

코드 리뷰 난이도

🎯 3 (Moderate) | ⏱️ ~20분

  • Table.tsx: className 전파 로직 변경으로 인한 스타일 동작 검증 필요
  • TextArea.tsx: 새 props 추가에 따른 backward compatibility 및 스타일 적용 정확성 확인

관련 PR

제안 라벨

refactor

제안 검토자

  • ujinsim
  • keemsebin

Pre-merge checks and finishing touches

❌ 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%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목이 주요 변경사항을 명확하게 요약하고 있으며, 실제 코드 변경(Table과 TextArea의 className 위치 조정)과 일치합니다.
Description check ✅ Passed PR 설명에 연관 이슈(#118)와 작업 내용(Table classname 위치 변경, TextArea wrapper classname 추가)이 명시되어 있으나, 템플릿의 다른 섹션(고민했던 내용, 리뷰 중점사항)이 미작성되었습니다.
Linked Issues check ✅ Passed PR의 모든 코드 변경사항이 연관 이슈 #118의 요구사항을 충족합니다. Table 컴포넌트의 className 주입 위치 변경과 TextArea 컴포넌트의 wrapper className 속성 추가가 모두 구현되었습니다.
Out of Scope Changes check ✅ Passed PR의 모든 변경사항이 연관 이슈 #118의 범위 내에 있습니다. package.json의 버전 업데이트는 작업 완료를 위한 표준적인 변경입니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/#118

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


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

Update: 2025년 11월 29일 01시 35분 03초
Storybook 미리보기: https://677a9a76c58a295e9421d3ef-systadeoxg.chromatic.com/

@yougyung yougyung merged commit 285ac31 into main Nov 28, 2025
8 of 9 checks passed
@yougyung yougyung deleted the fix/#118 branch November 28, 2025 16:36
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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/shared/ui/Table/Table.tsx (1)

6-8: 문서를 업데이트하여 className이 wrapper에 적용됨을 명시하세요.

className prop이 이제 외부 wrapper div에 적용되므로, JSDoc 주석에서 이를 명확히 설명해야 합니다. 기존 사용자들이 이 변경사항을 이해할 수 있도록 도움이 됩니다.

다음 diff를 적용하여 문서를 개선하세요:

  /**
-  * Optional custom className for additional styling.
+  * Optional custom className for additional styling of the wrapper div.
+  * Note: This applies to the outer container, not the table element itself.
   */
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d2f3ecf and a299aab.

📒 Files selected for processing (3)
  • package.json (1 hunks)
  • src/shared/ui/Table/Table.tsx (1 hunks)
  • src/shared/ui/TextArea/TextArea.tsx (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/shared/ui/Table/Table.tsx (1)
src/shared/index.ts (1)
  • cn (35-35)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: preview-storybook
🔇 Additional comments (2)
src/shared/ui/Table/Table.tsx (1)

16-28: 구현은 정확하지만 breaking change 가능성을 확인하세요.

className을 외부 wrapper div에 적용하고 내부 table 요소에는 고정된 클래스를 사용하는 구현은 올바르게 작성되었습니다. 그러나 기존 사용자가 table 요소에 직접 스타일을 적용하려고 했다면 (예: table 선택자를 사용하거나 display, border-collapse 등의 table 전용 속성을 기대), 이제 wrapper div에 적용되므로 의도한 대로 동작하지 않을 수 있습니다.

기존 사용처에서 다음과 같은 스타일링 패턴이 있는지 확인하세요:

  • table 선택자를 사용하는 CSS
  • border-collapse, table-layout 같은 table 전용 속성
  • 자식 선택자를 사용하는 스타일 (> thead, > tbody 등)
src/shared/ui/TextArea/TextArea.tsx (1)

27-30: 잘 구현되었습니다!

wrapperClassName prop 추가는 하위 호환성을 유지하면서 새로운 기능을 제공하는 좋은 접근 방식입니다. 기존 className은 textarea 요소에 계속 적용되고, 새로운 wrapperClassName은 외부 Flex wrapper에 적용되어 사용자가 두 레이어 모두 제어할 수 있습니다. JSDoc 문서화도 명확하고, 구현도 올바릅니다.

Also applies to: 38-38, 42-42

{
"name": "ddingdong-design-system",
"version": "1.0.22",
"version": "1.0.23",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash

# First, let's find the Table component file
echo "=== Searching for Table component ==="
fd -t f "Table\.(tsx|ts|jsx|js)$" src/

# Check current Table component implementation
echo -e "\n=== Current Table component content ==="
fd -t f "Table\.(tsx|ts|jsx|js)$" src/ -x cat -n {}

# Look at git history to find previous version
echo -e "\n=== Git log for Table component ==="
fd -t f "Table\.(tsx|ts|jsx|js)$" src/ -x git log --oneline -5 {}

# Show the diff for recent changes to Table component
echo -e "\n=== Recent changes to Table component ==="
fd -t f "Table\.(tsx|ts|jsx|js)$" src/ -x git diff HEAD~1 {}

Repository: COW-dev/ddingdong-design-system

Length of output: 1409


🏁 Script executed:

#!/bin/bash

# Let's check the full git history to see changes to Table
echo "=== Full git history for Table component ==="
git log --oneline -- src/shared/ui/Table/Table.tsx

# Check all commits that mention Table changes
echo -e "\n=== Git commits mentioning Table ==="
git log --oneline --all | grep -i table | head -20

# Let's look at what changed in the recent commit
echo -e "\n=== Details of commit a299aab ==="
git show a299aab --stat

# Search for Table component usage in the codebase
echo -e "\n=== Table component usages ==="
rg -n --type=tsx --type=ts '<Table' -C 3 | head -100

# Search specifically for className being passed to Table
echo -e "\n=== Table with className prop ==="
rg -n --type=tsx --type=ts '<Table\s+[^>]*className' -C 2

# Search for CSS selectors targeting table elements
echo -e "\n=== CSS selectors targeting table elements ==="
rg -n "table\." | head -30

Repository: COW-dev/ddingdong-design-system

Length of output: 12966


🏁 Script executed:

#!/bin/bash

# Search for Table usages with different approach
echo "=== Table component usages (broader search) ==="
rg -n '<Table' -C 3 | head -150

# Check for CSS that targets table elements
echo -e "\n=== CSS/style files ==="
fd -t f "\.(css|scss)$" src/ | head -20

# Check CHANGELOG or version history
echo -e "\n=== Looking for version/changelog files ==="
fd -t f "(CHANGE|VERSION|RELEASE)" . | grep -v node_modules

# Check git remote branches to see version history
echo -e "\n=== Git branches ==="
git branch -a

# Check if there's a specific commit that changed Table className position
echo -e "\n=== Commits that modified Table.tsx ==="
git log --all --oneline -- src/shared/ui/Table/Table.tsx

# Show the refactoring commit
echo -e "\n=== Show refactoring commit 8456ee4 ==="
git show 8456ee4 -- src/shared/ui/Table/Table.tsx | head -100

Repository: COW-dev/ddingdong-design-system

Length of output: 4059


🏁 Script executed:

#!/bin/bash

# Let me check commits after the refactoring
echo "=== All commits affecting Table.tsx in order ==="
git log --all --reverse --oneline -- src/shared/ui/Table/Table.tsx

# Show the original implementation before refactoring
echo -e "\n=== Original Table implementation (commit 653a29f) ==="
git show 653a29f -- src/shared/ui/Table/Table.tsx | head -60

# Show exactly what's on current HEAD
echo -e "\n=== Current HEAD commit info ==="
git log -1 --stat

# Show the current state vs the refactoring diff more carefully
echo -e "\n=== Detailed diff of refactoring commit ==="
git show 8456ee4 -- src/shared/ui/Table/Table.tsx

# Check if there are commits after refactoring that changed Table again
echo -e "\n=== Commits between refactoring and version bump ==="
git log 8456ee4..a299aab --oneline -- src/shared/ui/Table/Table.tsx

Repository: COW-dev/ddingdong-design-system

Length of output: 15605


🏁 Script executed:

#!/bin/bash

# Show what a299aab changed in Table.tsx specifically
echo "=== Detailed changes in commit a299aab for Table.tsx ==="
git show a299aab -- src/shared/ui/Table/Table.tsx | head -100

# Let's verify the parent of a299aab to see the state before
echo -e "\n=== State of Table.tsx just before a299aab ==="
git show a299aab^:src/shared/ui/Table/Table.tsx 2>/dev/null || echo "No parent commit"

# Verify current state matches what we see
echo -e "\n=== Current state of Table.tsx (should match what we saw) ==="
head -29 src/shared/ui/Table/Table.tsx

Repository: COW-dev/ddingdong-design-system

Length of output: 2047


🏁 Script executed:

#!/bin/bash

# Let's check the coderabbit_119 branch to see what changes are being reviewed
echo "=== Checking coderabbit_119 branch ==="
git log --oneline coderabbit_119 | head -10

# Show diff between main and coderabbit_119 for Table.tsx
echo -e "\n=== Diff between main and coderabbit_119 for Table.tsx ==="
git diff main coderabbit_119 -- src/shared/ui/Table/Table.tsx

# Check the current branch we're on
echo -e "\n=== Current branch/state ==="
git log --oneline -3
git status

# Look at what version is in main vs current
echo -e "\n=== Version in main branch ==="
git show main:package.json | grep '"version"'

echo -e "\n=== Version in current state ==="
cat package.json | grep '"version"'

Repository: COW-dev/ddingdong-design-system

Length of output: 1399


🏁 Script executed:

#!/bin/bash

# Check if this is a published package
echo "=== Package info ==="
cat package.json | grep -E '"name"|"version"|"private"'

# Check for any semver or versioning policy
echo -e "\n=== Versioning policy documentation ==="
fd -t f "(SEMVER|VERSION|CHANGELOG)" . | grep -v node_modules | head -10

# Check if there's a changelog
echo -e "\n=== CHANGELOG or similar ==="
ls -la | grep -i change

# Search for any documentation on breaking changes
echo -e "\n=== Looking for BREAKING.md or similar ==="
fd -t f "BREAKING" .

# Check git tags to see version history
echo -e "\n=== Git tags (version history) ==="
git tag | sort -V | tail -10

# Show what changed in the PR more broadly
echo -e "\n=== All files changed in the PR ==="
git diff --name-only main coderabbit_119 | head -20

Repository: COW-dev/ddingdong-design-system

Length of output: 422


Table component className relocation is indeed a breaking change — patch version is inappropriate.

The change moves the className prop from the internal <table> element to the outer wrapper <div>, which breaks CSS selectors and styling patterns targeting the table element directly. External consumers relying on table.custom-class selectors or similar patterns will experience broken styles.

With this package published as ddingdong-design-system and no documented versioning policy, using a patch version (1.0.23) for a breaking change violates semantic versioning. This should be version 2.0.0 (major) to signal breaking changes, or minimally 1.1.0 (minor) if treating as a feature with breaking implications.

The concern is justified and requires addressing the version number.

🤖 Prompt for AI Agents
In package.json at line 3 (version "1.0.23"), the package was published with a
breaking change (Table component moves className from the internal <table> to an
outer <div>), so the version must be bumped to signal the breaking API change;
update the version to 2.0.0 (or at minimum 1.1.0 if you decide to treat it as a
feature), update CHANGELOG/release notes to describe the breaking change and
provide a migration note showing how consumers must move their selectors or pass
classes to the new wrapper, and ensure README/docs and any example code are
updated to reflect the new DOM structure (or alternatively revert the className
relocation if you prefer a non-breaking fix).

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.

[FIX] className 주입위치 변경

1 participant