dev #46

Merged
kjs merged 344 commits from dev into main 2025-09-22 18:17:24 +09:00
2 changed files with 57 additions and 1 deletions
Showing only changes of commit 3fbbfb53c1 - Show all commits

View File

@ -3,6 +3,8 @@
* .
*/
import { commonCodeApi } from "@/lib/api/commonCode";
interface CacheEntry {
data: any;
timestamp: number;
@ -86,6 +88,60 @@ class CodeCache {
createCodeKey(category: string, companyCode?: string): string {
return `code:${category}:${companyCode || "*"}`;
}
/**
*
*/
async preloadCodes(categories: string[]): Promise<void> {
console.log(`🔄 코드 배치 로딩 시작: ${categories.join(", ")}`);
const promises = categories.map(async (category) => {
try {
const response = await commonCodeApi.codes.getList(category, { isActive: true });
if (response.success && response.data) {
const cacheKey = this.createCodeKey(category);
this.set(cacheKey, response.data, this.defaultTTL);
console.log(`✅ 코드 로딩 완료: ${category} (${response.data.length}개)`);
}
} catch (error) {
console.error(`❌ 코드 로딩 실패: ${category}`, error);
}
});
await Promise.all(promises);
console.log(`✅ 코드 배치 로딩 완료: ${categories.length}개 카테고리`);
}
/**
* ()
*/
getCodeSync(category: string, companyCode?: string): any[] | null {
const cacheKey = this.createCodeKey(category, companyCode);
return this.get(cacheKey);
}
/**
* ( API )
*/
async getCodeAsync(category: string, companyCode?: string): Promise<any[]> {
const cached = this.getCodeSync(category, companyCode);
if (cached) {
return cached;
}
try {
const response = await commonCodeApi.codes.getList(category, { isActive: true });
if (response.success && response.data) {
const cacheKey = this.createCodeKey(category, companyCode);
this.set(cacheKey, response.data, this.defaultTTL);
return response.data;
}
} catch (error) {
console.error(`❌ 코드 조회 실패: ${category}`, error);
}
return [];
}
}
// 싱글톤 인스턴스 생성

View File

@ -35,7 +35,7 @@ import "./toggle-switch/ToggleSwitchRenderer";
import "./image-display/ImageDisplayRenderer";
import "./divider-line/DividerLineRenderer";
import "./accordion-basic/AccordionBasicRenderer";
// import "./table-list/TableListRenderer"; // 임시 비활성화
import "./table-list/TableListRenderer";
import "./card-display/CardDisplayRenderer";
/**