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