lhj #376
|
|
@ -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(() => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue