prometheus/web/ui/mantine-ui/src/state/serviceDiscoveryPageSlice.ts
Julius Volz d22e721d39 Add initial Service Discovery page
Signed-off-by: Julius Volz <julius.volz@gmail.com>
2024-08-28 14:56:35 +02:00

38 lines
1.1 KiB
TypeScript

import { PayloadAction, createSlice } from "@reduxjs/toolkit";
import { initializeFromLocalStorage } from "./initializeFromLocalStorage";
export const localStorageKeyCollapsedPools = "serviceDiscovery.collapsedPools";
export const localStorageKeyTargetHealthFilter =
"serviceDiscovery.healthFilter";
interface ServiceDiscoveryPage {
collapsedPools: string[];
showLimitAlert: boolean;
}
const initialState: ServiceDiscoveryPage = {
collapsedPools: initializeFromLocalStorage<string[]>(
localStorageKeyCollapsedPools,
[]
),
showLimitAlert: false,
};
export const serviceDiscoveryPageSlice = createSlice({
name: "serviceDiscoveryPage",
initialState,
reducers: {
setCollapsedPools: (state, { payload }: PayloadAction<string[]>) => {
state.collapsedPools = payload;
},
setShowLimitAlert: (state, { payload }: PayloadAction<boolean>) => {
state.showLimitAlert = payload;
},
},
});
export const { setCollapsedPools, setShowLimitAlert } =
serviceDiscoveryPageSlice.actions;
export default serviceDiscoveryPageSlice.reducer;