- claudedocs 폴더 구조 재정리: archive/sessions, guides/migration·mobile·universal-list, refactoring 분류 - 오래된 세션 컨텍스트/체크리스트 문서 정리 (아카이브 이동 또는 삭제) - AuthContext → authStore(Zustand) 전환 시작, RootProvider 간소화 - GenericCRUDDialog 공통 다이얼로그 컴포넌트 추가 - PermissionDialog 삭제 → GenericCRUDDialog로 대체 - RankDialog/TitleDialog GenericCRUDDialog 기반으로 리팩토링 - toast-utils.ts 삭제 (미사용) - fileDownload.ts 개선, excel-download.ts 정리 - menuStore/themeStore Zustand 셀렉터 최적화 - useColumnSettings/useTableColumnStore 기능 보강 - 세금계산서/견적/작업자화면/결재 등 소규모 개선 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
'use client';
|
|
|
|
import { ReactNode } from 'react';
|
|
import { PermissionProvider } from './PermissionContext';
|
|
import { ItemMasterProvider } from './ItemMasterContext';
|
|
|
|
/**
|
|
* RootProvider - 모든 Context Provider를 통합하는 최상위 Provider
|
|
*
|
|
* 현재 사용 중인 Context/Store:
|
|
* 1. authStore (Zustand) - 사용자/인증 (Provider 불필요)
|
|
* 2. PermissionContext - 권한 관리 (URL 자동매칭)
|
|
* 3. ItemMasterContext - 품목관리 (13개 상태)
|
|
*
|
|
* 미사용 Context (contexts/_unused/로 이동됨):
|
|
* - FacilitiesContext, AccountingContext, HRContext, ShippingContext
|
|
* - InventoryContext, ProductionContext, PricingContext, SalesContext
|
|
*/
|
|
export function RootProvider({ children }: { children: ReactNode }) {
|
|
return (
|
|
<PermissionProvider>
|
|
<ItemMasterProvider>
|
|
{children}
|
|
</ItemMasterProvider>
|
|
</PermissionProvider>
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 사용법:
|
|
*
|
|
* // app/layout.tsx
|
|
* import { RootProvider } from '@/contexts/RootProvider';
|
|
*
|
|
* export default function RootLayout({ children }) {
|
|
* return (
|
|
* <html>
|
|
* <body>
|
|
* <RootProvider>
|
|
* {children}
|
|
* </RootProvider>
|
|
* </body>
|
|
* </html>
|
|
* );
|
|
* }
|
|
*
|
|
* // 각 페이지/컴포넌트에서 사용:
|
|
* import { useAuth } from '@/contexts/AuthContext';
|
|
* import { useItemMaster } from '@/contexts/ItemMasterContext';
|
|
* import { useSales } from '@/contexts/SalesContext';
|
|
* // ... 등등
|
|
*/ |