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:
유병철
2026-01-30 14:16:17 +09:00
parent a486977b80
commit 3ef9570f3b
27 changed files with 554 additions and 451 deletions

View File

@@ -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>