support for multiple systems in an Event

This commit is contained in:
Luke Berndt
2023-01-25 21:35:00 -05:00
parent 755364c0b1
commit 8d0658a97f
4 changed files with 112 additions and 98 deletions

View File

@@ -17,6 +17,16 @@ const initialState = {
live: false
}
const compareCalls = (a, b) => {
const aTimestamp = new Date(a.time).getTime()
const bTimestamp = new Date(b.time).getTime()
if (aTimestamp > bTimestamp) {
return -1
} else {
return 1
}
}
export const callPlayerSlice = createSlice({
name: 'callPlayer',
initialState,
@@ -33,6 +43,23 @@ export const callPlayerSlice = createSlice({
state.playlist = action.payload;
}
},
removeFromPlaylist: (state, action) => {
const call = action.payload;
if (call) {
const found = state.playlist.findIndex(c => c._id == call._id);
if (found != -1) {
state.playlist = state.playlist.splice(found, 1)
}
}
},
addToPlaylist: (state, action) => {
const call = action.payload;
const found = state.playlist.find(c => c._id == call._id);
if (!found) {
const newlist = [...state.playlist, call];
state.playlist = newlist.sort(compareCalls);
}
},
setFilter: (state,action) => {
var filter={};
state.live = !action.payload.live ? state.live : action.payload.live;
@@ -75,7 +102,7 @@ export const callPlayerSlice = createSlice({
})
// Action creators are generated for each case reducer function
export const { setCurrentCallId, setCallTime, setFilter, setLive, setShortName, setDateFilter, setStarredFilter, setAllFilter, setGroupFilter, setTalkgroupFilter } = callPlayerSlice.actions
export const { setCurrentCallId, setCallTime, setFilter, setLive, setPlaylist, removeFromPLaylist, addToPlaylist, setShortName, setDateFilter, setStarredFilter, setAllFilter, setGroupFilter, setTalkgroupFilter } = callPlayerSlice.actions
export default callPlayerSlice.reducer