#5ReadabilityMedium

Notification Badge → Lookup / Helpers

Notification Badge — 깊은 중첩 ternary 풀기

알림 배지의 색상/애니메이션/숫자 표시를 결정하는 로직이 4-5단 중첩 삼항 으로 짜여 있습니다. 우선순위 비교가 한 표현식에 다 들어가 있어 한 케이스만 바꾸기도 어려움. 우선순위→스타일 매핑을 lookup 객체 또는 헬퍼 함수 로 분리하세요.

할 일

  1. pickStyle(state) 같은 헬퍼로 우선순위(critical > high > mention > default) 결정 + 그에 대응하는 색상/애니메이션 반환
  2. formatBadgeCount(count, hasCritical) 같은 헬퍼로 숫자 표시 규칙 분리
  3. 동작 유지

좋은 fix

  • const styleByLevel = { critical: { color: '#dc2626', anim: 'pulse-critical' }, ... }
  • 우선순위 결정을 별도 함수: critical 우선, 그다음 high, mention, default
  • 카운트 표시 함수: >99 → '99+', >9 && hasCritical → '!', else count

안 되는 fix

  • ternary 줄바꿈만 예쁘게 (구조 그대로)
  • 모든 분기를 inline if 로 늘어뜨려 길어지게만
Sandpack 로드 중…