lhj #376

Merged
hjlee merged 5 commits from lhj into main 2026-01-21 17:15:48 +09:00
1 changed files with 24 additions and 5 deletions
Showing only changes of commit 2327d6e97c - Show all commits

View File

@ -447,8 +447,8 @@ export const PivotGridComponent: React.FC<PivotGridProps> = ({
useEffect(() => {
if (!isStateRestored) return; // 복원 완료 전에는 무시
// persistState가 켜져있고 저장된 상태가 있으면 initialFields로 덮어쓰지 않음
if (persistState && typeof window !== "undefined") {
// 저장된 상태가 있으면 initialFields로 덮어쓰지 않음
if (typeof window !== "undefined") {
const savedState = localStorage.getItem(stateStorageKey);
if (savedState) return; // 이미 저장된 상태가 있으면 무시
}
@ -456,13 +456,32 @@ export const PivotGridComponent: React.FC<PivotGridProps> = ({
if (initialFields.length > 0) {
setFields(initialFields);
}
}, [initialFields, isStateRestored, persistState, stateStorageKey]);
// persistState는 의존성에서 제외 - 체크박스 변경 시 현재 상태 유지
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [initialFields, isStateRestored, stateStorageKey]);
// 상태 유지 설정 저장
// 상태 유지 설정 저장 + 켜질 때 현재 상태 즉시 저장
useEffect(() => {
if (typeof window === "undefined") return;
localStorage.setItem(persistSettingKey, String(persistState));
}, [persistState, persistSettingKey]);
// 상태 유지를 켜면 현재 상태를 즉시 저장
if (persistState && isStateRestored && fields.length > 0) {
const stateToSave = {
version: PIVOT_STATE_VERSION,
fields,
pivotState,
sortConfig,
columnWidths,
};
localStorage.setItem(stateStorageKey, JSON.stringify(stateToSave));
}
// 상태 유지를 끄면 저장된 상태 삭제
if (!persistState) {
localStorage.removeItem(stateStorageKey);
}
}, [persistState, persistSettingKey, isStateRestored, fields, pivotState, sortConfig, columnWidths, stateStorageKey]);
// 상태 저장 (localStorage)
const saveStateToStorage = useCallback(() => {