Files
vexplor/frontend/app/registry-provider.tsx
kjs 042488d51b feat: 다중 선택 및 일괄 삭제 기능 추가
- 카테고리 값 관리 컴포넌트에 체크박스를 통한 다중 선택 기능을 추가하였습니다.
- 선택된 카테고리를 일괄 삭제할 수 있는 다이얼로그를 구현하였습니다.
- 테이블 관리 서비스에서 다중 선택 처리 로직을 추가하여, 파이프(|)로 구분된 값을 처리하도록 개선하였습니다.
- 관련된 로그 메시지를 추가하여 다중 선택 및 삭제 과정에서의 정보를 기록하도록 하였습니다.
2026-01-27 11:02:20 +09:00

78 lines
2.0 KiB
TypeScript

"use client";
import React, { useEffect, useState } from "react";
import { initializeRegistries } from "@/lib/registry/init";
import { initV2Core, cleanupV2Core } from "@/lib/v2-core";
interface RegistryProviderProps {
children: React.ReactNode;
}
/**
* 레지스트리 초기화 프로바이더
* 앱 시작 시 모든 웹타입과 버튼 액션을 등록합니다.
*/
export function RegistryProvider({ children }: RegistryProviderProps) {
const [isInitialized, setIsInitialized] = useState(false);
useEffect(() => {
// 레지스트리 초기화
try {
initializeRegistries();
// V2 Core 초기화 (느슨한 결합 아키텍처)
initV2Core({
debug: false,
legacyBridge: {
legacyToV2: true,
v2ToLegacy: true,
},
});
setIsInitialized(true);
} catch (error) {
console.error("❌ 레지스트리 초기화 실패:", error);
setIsInitialized(true); // 오류가 있어도 앱은 계속 실행
}
// 정리 함수
return () => {
cleanupV2Core();
};
}, []);
// 초기화 중 로딩 표시 (선택사항)
// if (!isInitialized) {
// return (
// <div className="flex min-h-screen items-center justify-center">
// <div className="flex flex-col items-center space-y-4">
// <div className="border-primary h-12 w-12 animate-spin rounded-full border-b-2"></div>
// <p className="text-muted-foreground text-sm">시스템 초기화 중...</p>
// </div>
// </div>
// );
// }
return <>{children}</>;
}
/**
* 레지스트리 초기화 상태를 확인하는 훅
*/
export function useRegistryInitialization() {
const [isInitialized, setIsInitialized] = useState(false);
const [error, setError] = useState<Error | null>(null);
useEffect(() => {
try {
initializeRegistries();
setIsInitialized(true);
} catch (err) {
setError(err as Error);
setIsInitialized(true);
}
}, []);
return { isInitialized, error };
}