From f19766310113c1f9c131a494e9b5f01c390460e5 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Mon, 29 Jun 2026 23:34:58 +0900 Subject: [PATCH] =?UTF-8?q?MudDataGrid=EC=99=80=20MudDialog=20=ED=8F=90?= =?UTF-8?q?=EA=B8=B0=20=EA=B8=B0=EC=A4=80=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 16 +++++++++++++++- README.md | 5 ++++- tests/e2e/admin-crm-pages.spec.ts | 2 +- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index e010530..d91feba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -15,10 +15,15 @@ Blazor (UI만, 사용자 액션 후 API 재조회) ← API (모든 로직) ← D ### UI 기준 원칙 (2026-06-29 추가) - 기본 디자인 템플릿은 `https://v5.fluentui-blazor.net/` 기준으로 한다. - 신규 또는 리팩토링 UI는 Fluent UI Blazor v5 패턴을 우선 적용한다. -- MudBlazor는 기존 호환 레거시로만 유지하고, 새 UI는 Fluent v5 또는 순수 HTML/CSS로 작성한다. +- MudBlazor는 레거시 폐기 대상이다. 새 UI나 리팩토링 UI에서는 사용하지 않는다. +- 기존 MudBlazor 잔여 코드는 Fluent v5 또는 순수 HTML/CSS로 점진 전환한다. - 기본 로딩 상태는 `Skeleton`이다. `MudProgressCircular` / `MudProgressLinear`는 예외적으로만 사용한다. +- `MudDataGrid`, `MudDialog`, `MudTabs`는 폐기 대상이다. 새 작업에서는 사용하지 말고 Fluent v5 또는 순수 HTML/CSS 패턴으로 대체한다. - 목록, 카드, 대시보드, 상세 페이지의 초기 데이터 상태는 스켈톤으로 먼저 렌더링하고, 데이터 수신 후 실제 UI로 교체한다. - 로딩 중 블로킹 스피너보다 스켈톤을 우선한다. +- 관리자와 공개 사이트는 가능한 한 같은 `design-tokens.css` / `ui-primitives.css` 기반으로 구성한다. +- Blazor 진입점은 중복 매핑하지 말고, 동일 호스트 내에서 라우트 충돌이 없도록 단일 엔트리 기준으로 구성한다. +- `@page` 중복이나 동일 경로의 Razor Pages + Blazor 중복 선언은 배포 전에 반드시 제거한다. ### SOLID 기반 순차 마이그레이션 전략 @@ -89,6 +94,15 @@ _refreshTokenExpirationMinutes = 10080; - MudDialog 모달 패턴 (흰 화면 플래시 제거) - ConfirmDialog 삭제 확인 컴포넌트 +### 2026-06-29 운영 기준 업데이트 +- 관리자 백오피스는 Fluent UI v5 우선 구조로 재정리한다. +- 기본 로딩은 스피너가 아니라 Skeleton이다. +- `design-tokens.css`와 `ui-primitives.css`는 사이트/관리자 공통의 기본 계층이다. +- 라우팅 충돌은 가장 먼저 확인할 항목이며, 동일 경로가 두 번 등록되는 구조를 만들지 않는다. +- 커밋은 기능/호스팅/UI/CSS처럼 주제별로 분리한다. +- MudBlazor는 신규 도입 금지이며, 잔여 사용처는 제거 우선순위로 관리한다. +- `MudDataGrid`, `MudDialog`, `MudTabs`도 신규 도입 금지이며, 기존 사용처는 제거 우선순위로 관리한다. + --- ## 📊 **전체 프로젝트 완료 현황** diff --git a/README.md b/README.md index 961b8fe..4ebbd6a 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,10 @@ TaxBaik/ - **UI 기준** - 기본 디자인 템플릿은 `https://v5.fluentui-blazor.net/` - 기본 로딩 상태는 `Skeleton` - - 기존 MudBlazor 패턴은 레거시 호환용으로만 유지 + - MudBlazor는 레거시 폐기 대상이며 신규 UI에 사용하지 않음 + - `MudDataGrid`, `MudDialog`, `MudTabs`는 폐기 대상이며 신규 UI에 사용하지 않음 + - 사이트와 관리자는 `design-tokens.css` / `ui-primitives.css`를 공유 + - Blazor 라우트는 중복 선언하지 않고 단일 엔트리 기준으로 관리 --- diff --git a/tests/e2e/admin-crm-pages.spec.ts b/tests/e2e/admin-crm-pages.spec.ts index b1e52b9..e65c63b 100644 --- a/tests/e2e/admin-crm-pages.spec.ts +++ b/tests/e2e/admin-crm-pages.spec.ts @@ -133,7 +133,7 @@ test.describe('admin CRM pages', () => { // JS 네이티브 클릭으로 강제 격발하여 오프셋 씹힘 소멸 await addButton.evaluate(el => (el as HTMLButtonElement).click()); - // 대화상자(MudDialog) 자체의 노출 대기 + // 편집 모달이 화면에 안정적으로 표시될 때까지 대기 await expect(page.locator('.mud-dialog')).toBeVisible({ timeout: 5000 }); // mud-select 컨테이너 자체 클릭 (이벤트 핸들러 직접 격발)