- 카테고리 값 관리 컴포넌트에 체크박스를 통한 다중 선택 기능을 추가하였습니다. - 선택된 카테고리를 일괄 삭제할 수 있는 다이얼로그를 구현하였습니다. - 테이블 관리 서비스에서 다중 선택 처리 로직을 추가하여, 파이프(|)로 구분된 값을 처리하도록 개선하였습니다. - 관련된 로그 메시지를 추가하여 다중 선택 및 삭제 과정에서의 정보를 기록하도록 하였습니다.
97 lines
2.0 KiB
TypeScript
97 lines
2.0 KiB
TypeScript
/**
|
|
* V2 Core 초기화
|
|
*
|
|
* 앱 시작 시 한 번 호출하여 V2 시스템을 초기화합니다.
|
|
*/
|
|
|
|
import { v2EventBus } from "./events";
|
|
import { legacyEventAdapter } from "./adapters";
|
|
|
|
let isInitialized = false;
|
|
|
|
export interface V2CoreOptions {
|
|
/** 디버그 모드 활성화 */
|
|
debug?: boolean;
|
|
/** 레거시 이벤트 브릿지 설정 */
|
|
legacyBridge?: {
|
|
/** 레거시 → V2 브릿지 활성화 (기본값: true) */
|
|
legacyToV2?: boolean;
|
|
/** V2 → 레거시 브릿지 활성화 (기본값: true) */
|
|
v2ToLegacy?: boolean;
|
|
};
|
|
}
|
|
|
|
/**
|
|
* V2 Core 초기화
|
|
*
|
|
* @param options - 초기화 옵션
|
|
*
|
|
* @example
|
|
* ```typescript
|
|
* // app/layout.tsx 또는 진입점에서 호출
|
|
* import { initV2Core } from "@/lib/v2-core";
|
|
*
|
|
* // 기본 초기화
|
|
* initV2Core();
|
|
*
|
|
* // 디버그 모드 및 커스텀 설정
|
|
* initV2Core({
|
|
* debug: process.env.NODE_ENV === "development",
|
|
* legacyBridge: {
|
|
* legacyToV2: true,
|
|
* v2ToLegacy: true,
|
|
* },
|
|
* });
|
|
* ```
|
|
*/
|
|
export function initV2Core(options?: V2CoreOptions): void {
|
|
if (isInitialized) {
|
|
console.warn("[V2Core] 이미 초기화되어 있습니다.");
|
|
return;
|
|
}
|
|
|
|
const {
|
|
debug = process.env.NODE_ENV === "development",
|
|
legacyBridge = { legacyToV2: true, v2ToLegacy: true },
|
|
} = options ?? {};
|
|
|
|
// 디버그 모드 설정
|
|
v2EventBus.debug = debug;
|
|
|
|
// 레거시 이벤트 브릿지 초기화
|
|
legacyEventAdapter.init(legacyBridge);
|
|
|
|
isInitialized = true;
|
|
}
|
|
|
|
/**
|
|
* V2 Core 정리
|
|
*
|
|
* 테스트 또는 특수 상황에서 V2 시스템을 정리할 때 사용
|
|
*/
|
|
export function cleanupV2Core(): void {
|
|
if (!isInitialized) {
|
|
return;
|
|
}
|
|
|
|
console.log("[V2Core] 정리 시작...");
|
|
|
|
// 레거시 어댑터 정리
|
|
legacyEventAdapter.destroy();
|
|
|
|
// 이벤트 버스 정리
|
|
v2EventBus.clear();
|
|
|
|
isInitialized = false;
|
|
|
|
console.log("[V2Core] 정리 완료");
|
|
}
|
|
|
|
/**
|
|
* V2 Core 초기화 상태 확인
|
|
*/
|
|
export function isV2CoreInitialized(): boolean {
|
|
return isInitialized;
|
|
}
|
|
|