Skip to content

feat: 관리자 페이지 커스터마이저 패널#431

Merged
sdk-kr merged 11 commits into
mainfrom
feature/admin-customizer
Mar 8, 2026
Merged

feat: 관리자 페이지 커스터마이저 패널#431
sdk-kr merged 11 commits into
mainfrom
feature/admin-customizer

Conversation

@sdk-kr
Copy link
Copy Markdown
Contributor

@sdk-kr sdk-kr commented Mar 8, 2026

Summary

  • WordPress Customizer 스타일의 오른쪽 슬라이드 패널 (380px)
  • 현재 페이지를 보면서 상단/사이드/펼침 메뉴 + 위젯을 실시간 편집
  • 기존 edit-mode-toggle 톱니바퀴를 커스터마이저 트리거로 대체
  • 관리자 전용 지연 로딩 (비관리자 번들 영향 없음)

변경사항

  • 신규: admin-customizer 컴포넌트 (패널, 트리거, 4개 섹션)
  • 신규: admin-customizer.svelte.ts 스토어
  • 수정: +page.svelte - EditModeToggle → CustomizerTrigger
  • 수정: +layout.svelte - 패널 lazy-load 추가

Test plan

  • 관리자 로그인 → 홈페이지 우측 하단 톱니바퀴 확인
  • 비관리자 → 톱니바퀴 미표시 확인
  • 패널 열기 → 상단/사이드/펼침/위젯 탭 전환 확인
  • 메뉴 토글(ON/OFF) → 헤더/사이드바 실시간 반영 확인
  • 위젯 순서변경/토글 → 페이지 실시간 반영 확인
  • ESC/backdrop 클릭 → 패널 닫기 확인
  • 모바일(< 768px) → 전체 화면 오버레이 확인

Deploy Bot added 11 commits March 8, 2026 22:46
WordPress Customizer 스타일의 오른쪽 슬라이드 패널로
현재 페이지를 보면서 메뉴/위젯을 실시간 편집할 수 있습니다.

- 상단/사이드/펼침 메뉴 편집 (드래그앤드롭, 토글)
- 위젯 편집 (메인/사이드바 영역, 순서변경, 활성화)
- 기존 edit-mode-toggle을 커스터마이저 트리거로 대체
- 관리자 전용 지연 로딩 (비관리자 번들 영향 없음)
adminMenuStore(관리용)와 menuStore(표시용)의 타입이 달라
관리 데이터를 그대로 넣으면 상단 전용 메뉴(홈, 소모임, 피드)가
사이드바에 의도치 않게 노출되는 문제 수정.

SSR API(/api/v1/menus/sidebar)를 다시 fetch하여 프론트 메뉴 갱신.
- $derived → $state + $effect 동기화로 DnD 작동 수정
  (Svelte 5에서 $derived는 재할당 시 다음 사이클에서 리셋됨)
- #key 블록으로 소스 변경 시 dndzone 재초기화
- saveAll 후 프론트 메뉴 자동 갱신
관리자 API 인증 실패 등으로 loadMenus()가 빈 배열을 반환할 때
SSR에서 받은 menuStore 데이터를 fallback으로 사용하여
"상단 메뉴가 없습니다" 문제 방지
open() 시 menuStore(SSR) 데이터를 먼저 세팅하여 빈 화면 방지.
관리자 API 성공 시 덮어쓰기, 실패 시 SSR 데이터 유지.
loadMenus() catch에서 this._menus = []로 초기화하던 것을 제거하여
관리자 API 실패 시에도 SSR에서 가져온 메뉴 데이터를 유지
- 알림 벨 드롭다운: 모든 알림 보기 옆에 알림설정 링크 추가
- /notifications 페이지: 필터 탭 우측에 설정 버튼 추가
- 설정 페이지 URL ?tab=notification 파라미터로 알림 탭 직접 이동 지원
MenuItem → Menu 변환 시 is_active, view_level 등 관리자 전용 필드를
기본값으로 채워서 필터가 정상 작동하도록 수정.
탭 클릭 디버그 로그 추가.
- {#each} 루프 + 동적 컴포넌트 대신 명시적 버튼으로 변경
- backdrop을 button에서 div로 변경하여 클릭 이벤트 간섭 방지
- role="tablist" 접근성 추가
menuStore.menus를 필터 없이 사이드바에 렌더링하여
show_in_header 전용 메뉴(홈, 소모임, 피드)도 좌측에 노출되던 버그 수정
@sdk-kr sdk-kr merged commit b29f592 into main Mar 8, 2026
8 of 12 checks passed
@sdk-kr sdk-kr deleted the feature/admin-customizer branch March 8, 2026 14:30
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 8, 2026

Staging 배포 완료

URL: https://dev.damoang.net
이미지: staging-518498e
커밋: 518498e

변경사항을 dev.damoang.net에서 확인하세요.

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.

1 participant