[FE-07] S1 플래그 목록 화면

작업 내용 (설계 의도)

변경 사항

/admin/feature-flags 목록 화면을 구현한다. status/type 필터, 목록 테이블, 4상태(loading/empty/error/success) 처리, “플래그 추가” 단일 CTA. 근거 설계: ../design-fe-web.md “S1 와이어프레임 / 화면별 상태 표”.

  • web/app/admin/feature-flags/page.tsx(컨테이너, “use client”): useFeatureFlags(filters) 소비, 상태 분기 렌더.
  • web/app/admin/feature-flags/_components/FeatureFlagFilters.tsx: status/type select(지역 useState).
  • web/app/admin/feature-flags/_components/FeatureFlagTable.tsx: 행에 key·TypeBadge·StatusBadge·StrategySummary·수정 링크. 행 클릭 → /admin/feature-flags/[key].
  • 빈 상태: 플래그 0건 → “등록된 플래그가 없습니다” + [+ 플래그 추가] CTA(User Scenario 8). 필터 결과 0건은 별도 문구.
  • 오류: role="alert" 배너 + 다시 시도.
  • 색은 토큰만, 라이트/다크 확인. accent는 CTA 한 곳.

의존

  • FE-04 (useFeatureFlags)
  • FE-05 (StatusBadge/TypeBadge/StrategySummary)

다이어그램

처리 흐름

sequenceDiagram
    participant U as 운영자
    participant P as page.tsx
    participant H as useFeatureFlags
    U->>P: /admin/feature-flags 진입
    P->>H: fetch(filters)
    H-->>P: {data,isLoading,error}
    P-->>U: 로딩/빈/오류/테이블 렌더
    U->>P: 플래그 추가 클릭
    P-->>U: /new 이동

테스트 케이스

  • 로딩 중 로딩 표시가 나타난다
  • 플래그 0건이면 빈 상태 문구와 “플래그 추가” CTA가 보인다
  • 오류 시 alert 배너와 다시 시도 버튼이 보이고, 클릭 시 refetch한다
  • 데이터가 있으면 각 행에 key·상태 배지·전략 요약이 렌더된다
  • status 필터를 ARCHIVED로 바꾸면 해당 필터로 재조회한다
  • 행 클릭 시 상세 경로로 이동한다