Files
commafeed/commafeed-client/src/app/slices/server.ts

33 lines
1015 B
TypeScript
Raw Normal View History

2023-12-28 19:49:38 +01:00
import { PayloadAction, createSlice } from "@reduxjs/toolkit"
import { client } from "app/client"
2023-12-28 19:49:38 +01:00
import { createAppAsyncThunk } from "app/store"
import { ServerInfo } from "app/types"
interface ServerState {
serverInfos?: ServerInfo
webSocketConnected: boolean
}
const initialState: ServerState = {
webSocketConnected: false,
}
2023-12-28 19:49:38 +01:00
export const reloadServerInfos = createAppAsyncThunk("server/infos", () => client.server.getServerInfos().then(r => r.data))
export const serverSlice = createSlice({
name: "server",
initialState,
reducers: {
setWebSocketConnected: (state, action: PayloadAction<boolean>) => {
state.webSocketConnected = action.payload
},
},
extraReducers: builder => {
builder.addCase(reloadServerInfos.fulfilled, (state, action) => {
state.serverInfos = action.payload
})
},
})
export const { setWebSocketConnected } = serverSlice.actions
export default serverSlice.reducer