feat(button-actions): 저장 후 노드 플로우 실행 기능 추가 및 RepeatScreenModal props 수신 개선

- dataflowConfig.flowConfig 설정 시 저장 완료 후 노드 플로우 자동 실행
- executeNodeFlow API 동적 import로 번들 최적화
- RepeatScreenModal에서 _groupedData props 수신 지원 추가
- tiptap 라이브러리 버전 업그레이드 (2.11.5 → 2.27.1)
This commit is contained in:
SeongHyun Kim
2025-12-11 13:05:12 +09:00
parent 0e60f11084
commit 84095ace3b
4 changed files with 92 additions and 34 deletions

View File

@@ -55,7 +55,8 @@ export function RepeatScreenModalComponent({
...props
}: RepeatScreenModalComponentProps) {
// props에서도 groupedData를 추출 (DynamicWebTypeRenderer에서 전달될 수 있음)
const groupedData = propsGroupedData || (props as any).groupedData;
// DynamicComponentRenderer에서는 _groupedData로 전달됨
const groupedData = propsGroupedData || (props as any).groupedData || (props as any)._groupedData;
const componentConfig = {
...config,
...component?.config,
@@ -691,7 +692,7 @@ export function RepeatScreenModalComponent({
for (const tableRow of tableRowsWithExternalSource) {
const key = `${card._cardId}-${tableRow.id}`;
// 🆕 v3.7: 삭제된 행은 집계에서 제외
// 🆕 v3.7: 삭제된 행은 집계에서 제외
const rows = (extData[key] || []).filter((row) => !row._isDeleted);
externalRowsByTableId[tableRow.id] = rows;
allExternalRows.push(...rows);
@@ -1183,19 +1184,19 @@ export function RepeatScreenModalComponent({
console.log(`[RepeatScreenModal] DELETE 성공: ${targetTable}, id=${targetRow._originalData.id}`);
// 성공 시 UI에서 완전히 제거
setExternalTableData((prev) => {
const newData = {
...prev,
setExternalTableData((prev) => {
const newData = {
...prev,
[key]: prev[key].filter((row) => row._rowId !== rowId),
};
};
// 행 삭제 시 집계 재계산
setTimeout(() => {
recalculateAggregationsWithExternalData(newData);
}, 0);
return newData;
});
setTimeout(() => {
recalculateAggregationsWithExternalData(newData);
}, 0);
return newData;
});
} catch (error: any) {
console.error(`[RepeatScreenModal] DELETE 실패:`, error.response?.data || error.message);
// 에러 시에도 다이얼로그 닫기