중간저장
This commit is contained in:
@@ -49,19 +49,40 @@ export interface TemplateSavePayload {
|
||||
*/
|
||||
export async function saveTemplate(p: TemplateSavePayload): Promise<void> {
|
||||
const v2Layout = convertLegacyToV2(p.layout as any);
|
||||
|
||||
// screenResolutions 병합을 key-level 폴백으로 강화.
|
||||
// 기존: `p.viewScreenResolutions ?? 전체폴백` → {} 나 일부 키 누락 시 정보 유실
|
||||
// 개선: 항상 3뷰 모두 값이 보장되게 key 별로 폴백 처리
|
||||
const fallbackSr = p.layout.screenResolution;
|
||||
const vsrIn = (p.viewScreenResolutions ?? {}) as Record<string, any>;
|
||||
const screenResolutions = {
|
||||
list: vsrIn.list ?? fallbackSr,
|
||||
create: vsrIn.create ?? fallbackSr,
|
||||
edit: vsrIn.edit ?? fallbackSr,
|
||||
};
|
||||
|
||||
const viewsJson = {
|
||||
list: (v2Layout as any)?.components ?? [],
|
||||
create: p.v2Views?.create ?? [],
|
||||
edit: p.v2Views?.edit ?? [],
|
||||
gridSettings: p.layout.gridSettings,
|
||||
screenResolution: p.layout.screenResolution,
|
||||
screenResolutions: p.viewScreenResolutions ?? {
|
||||
list: p.layout.screenResolution,
|
||||
create: p.layout.screenResolution,
|
||||
edit: p.layout.screenResolution,
|
||||
},
|
||||
screenResolution: fallbackSr,
|
||||
screenResolutions,
|
||||
mainTableName: p.primaryTable,
|
||||
};
|
||||
|
||||
// 진단 로그 — 저장 payload 확인용. 문제 재현 시 여기서 확인 가능.
|
||||
/* eslint-disable no-console */
|
||||
console.log("[saveTemplate] payload", {
|
||||
templateId: p.templateId,
|
||||
viewsKeys: Object.keys(viewsJson),
|
||||
screenResolutions,
|
||||
listCount: viewsJson.list.length,
|
||||
createCount: viewsJson.create.length,
|
||||
editCount: viewsJson.edit.length,
|
||||
});
|
||||
/* eslint-enable no-console */
|
||||
|
||||
const payload: Record<string, any> = {
|
||||
name: p.name,
|
||||
category: p.category ?? "custom",
|
||||
|
||||
Reference in New Issue
Block a user