mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
34 lines
876 B
TypeScript
34 lines
876 B
TypeScript
import { createListenerMiddleware } from "@reduxjs/toolkit";
|
|
import { AppDispatch, RootState } from "./store";
|
|
import {
|
|
localStorageKeyCollapsedPools,
|
|
localStorageKeyTargetFilters,
|
|
setCollapsedPools,
|
|
updateTargetFilters,
|
|
} from "./targetsPageSlice";
|
|
|
|
const persistToLocalStorage = <T>(key: string, value: T) => {
|
|
localStorage.setItem(key, JSON.stringify(value));
|
|
};
|
|
|
|
export const localStorageMiddleware = createListenerMiddleware();
|
|
|
|
const startAppListening = localStorageMiddleware.startListening.withTypes<
|
|
RootState,
|
|
AppDispatch
|
|
>();
|
|
|
|
startAppListening({
|
|
actionCreator: setCollapsedPools,
|
|
effect: ({ payload }) => {
|
|
persistToLocalStorage(localStorageKeyCollapsedPools, payload);
|
|
},
|
|
});
|
|
|
|
startAppListening({
|
|
actionCreator: updateTargetFilters,
|
|
effect: ({ payload }) => {
|
|
persistToLocalStorage(localStorageKeyTargetFilters, payload);
|
|
},
|
|
});
|