feat(WEB): API 인프라 리팩토링, CEO 대시보드 현황판 개선 및 문서 시스템 강화
- API: fetch-wrapper/proxy/refresh-token 리팩토링, authenticated-fetch 신규 추가 - CEO 대시보드: EnhancedSections 현황판 기능 개선, dashboard transformers/types 확장 - 문서 시스템: ApprovalLine/DocumentHeader/DocumentToolbar/DocumentViewer 개선 - 작업지시서: 검사보고서/작업일지 문서 컴포넌트 개선 (벤딩/스크린/슬랫) - 레이아웃: Sidebar/AuthenticatedLayout 수정 - 작업자화면: WorkerScreen 수정 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -472,6 +472,20 @@ export default function AuthenticatedLayout({ children }: AuthenticatedLayoutPro
|
||||
);
|
||||
};
|
||||
|
||||
// 전체 메뉴 열기/닫기 토글 함수
|
||||
const toggleAllMenus = useCallback(() => {
|
||||
if (expandedMenus.length > 0) {
|
||||
// 하나라도 열려있으면 전부 닫기
|
||||
setExpandedMenus([]);
|
||||
} else {
|
||||
// 전부 닫혀있으면 children 있는 메뉴 전부 열기
|
||||
const menusWithChildren = menuItems
|
||||
.filter(item => item.children && item.children.length > 0)
|
||||
.map(item => item.id);
|
||||
setExpandedMenus(menusWithChildren);
|
||||
}
|
||||
}, [expandedMenus, menuItems]);
|
||||
|
||||
const handleLogout = async () => {
|
||||
try {
|
||||
// AuthContext의 logout() 호출 (완전한 캐시 정리 수행)
|
||||
@@ -653,6 +667,7 @@ export default function AuthenticatedLayout({ children }: AuthenticatedLayoutPro
|
||||
isMobile={true}
|
||||
onMenuClick={handleMenuClick}
|
||||
onToggleSubmenu={toggleSubmenu}
|
||||
onToggleAll={toggleAllMenus}
|
||||
onCloseMobileSidebar={() => setIsMobileSidebarOpen(false)}
|
||||
/>
|
||||
</SheetContent>
|
||||
@@ -1167,6 +1182,7 @@ export default function AuthenticatedLayout({ children }: AuthenticatedLayoutPro
|
||||
isMobile={false}
|
||||
onMenuClick={handleMenuClick}
|
||||
onToggleSubmenu={toggleSubmenu}
|
||||
onToggleAll={toggleAllMenus}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user