[st] - 일정등록, 입력단 지난검증결과 알림 뱃지, 로그 상세조회, 검토단 cell style 적용

This commit is contained in:
2026-07-02 17:46:13 +09:00
parent 25417dcda1
commit cea2d39df8
66 changed files with 1615 additions and 206 deletions
+35 -17
View File
@@ -39,10 +39,10 @@ function mergeCellStyleCallbackResult(
return baseStyleName ? { styleName: baseStyleName } : {};
}
if (typeof extra === "string") {
const styleName = [extra, baseStyleName].filter(Boolean).join(" ");
const styleName = [baseStyleName, extra].filter(Boolean).join(" ");
return styleName ? { styleName } : {};
}
const styleName = [extra.styleName, baseStyleName].filter(Boolean).join(" ");
const styleName = [baseStyleName, extra.styleName].filter(Boolean).join(" ");
return {
...extra,
...(styleName ? { styleName } : {}),
@@ -812,13 +812,24 @@ useEffect(() => {
useLayoutEffect(() => {
const gv = gridRef.current?.gridView;
if (!gv || !cellStyleCallback) return;
applyCellStyleCallbacksToColumns(
gv,
columns,
rowDataRef,
cellStyleCallbackRef,
);
(gv as { refresh?: () => void }).refresh?.();
const apply = () => {
applyCellStyleCallbacksToColumns(
gv,
columns,
rowDataRef,
cellStyleCallbackRef,
);
(gv as { refresh?: () => void }).refresh?.();
};
apply();
// footer setColumns / setColumnLayout 비동기 처리 이후 styleCallback 재적용
const timerId = window.setTimeout(apply, 300);
return () => {
window.clearTimeout(timerId);
};
}, [cellStyleCallback, columns, rowData]);
const { setMessage: alert } = useAlertStore((state) => state);
@@ -1416,6 +1427,13 @@ useEffect(() => {
| ((layout: unknown) => void)
| undefined
)?.(safeLayout);
applyCellStyleCallbacksToColumns(
gridRef.current.gridView,
columns,
rowDataRef,
cellStyleCallbackRef,
);
gridRef.current.gridView.refresh?.();
} catch (e) {
console.warn("setColumnLayout skipped due to invalid columns:", e);
}
@@ -1482,16 +1500,16 @@ useEffect(() => {
col,
),
);
applyFooterSettings(currentGridView);
if (hasFooterUserSpans) {
currentGridView.setColumnLayout?.(columnLayout);
}
applyCellStyleCallbacksToColumns(
currentGridView,
columns,
rowDataRef,
cellStyleCallbackRef,
);
applyFooterSettings(currentGridView);
if (hasFooterUserSpans) {
currentGridView.setColumnLayout?.(columnLayout);
}
// setColumns 호출 후 footer 배열의 valueCallback을 다시 설정
scheduleFooterTask(() => {
@@ -1535,16 +1553,16 @@ useEffect(() => {
);
}
});
applyFooterSettings(liveGridView);
if (hasFooterUserSpans) {
liveGridView.setColumnLayout?.(columnLayout);
}
applyCellStyleCallbacksToColumns(
liveGridView,
columns,
rowDataRef,
cellStyleCallbackRef,
);
applyFooterSettings(liveGridView);
if (hasFooterUserSpans) {
liveGridView.setColumnLayout?.(columnLayout);
}
liveGridView.refresh?.();
}, 50);
} catch (e) {