mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Draw frozen combat in the new UI.
https://github.com/dcs-liberation/dcs_liberation/issues/2039
This commit is contained in:
42
client/src/api/combatSlice.ts
Normal file
42
client/src/api/combatSlice.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { RootState } from "../app/store";
|
||||
import Combat from "./combat";
|
||||
import { PayloadAction, createSlice } from "@reduxjs/toolkit";
|
||||
|
||||
interface CombatState {
|
||||
combat: { [key: string]: Combat };
|
||||
}
|
||||
|
||||
const initialState: CombatState = {
|
||||
combat: {},
|
||||
};
|
||||
|
||||
export const combatSlice = createSlice({
|
||||
name: "combat",
|
||||
initialState,
|
||||
reducers: {
|
||||
setCombat: (state, action: PayloadAction<Combat[]>) => {
|
||||
state.combat = {};
|
||||
for (const combat of action.payload) {
|
||||
state.combat[combat.id] = combat;
|
||||
}
|
||||
},
|
||||
newCombat: (state, action: PayloadAction<Combat>) => {
|
||||
const combat = action.payload;
|
||||
state.combat[combat.id] = combat;
|
||||
},
|
||||
updateCombat: (state, action: PayloadAction<Combat>) => {
|
||||
const combat = action.payload;
|
||||
state.combat[combat.id] = combat;
|
||||
},
|
||||
endCombat: (state, action: PayloadAction<string>) => {
|
||||
delete state.combat[action.payload];
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export const { setCombat, newCombat, updateCombat, endCombat } =
|
||||
combatSlice.actions;
|
||||
|
||||
export const selectCombat = (state: RootState) => state.combat;
|
||||
|
||||
export default combatSlice.reducer;
|
||||
Reference in New Issue
Block a user