Draw frozen combat in the new UI.

https://github.com/dcs-liberation/dcs_liberation/issues/2039
This commit is contained in:
Dan Albert
2022-03-04 19:41:33 -08:00
parent 88cd9e19c5
commit 59f734dd07
9 changed files with 144 additions and 8 deletions

View 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;