workout-challenge/src-frontend/src/utils/reducers/modalSlice.js
2025-09-27 18:19:06 +01:00

27 lines
No EOL
705 B
JavaScript

import { createSlice } from '@reduxjs/toolkit';
const modalQueueSlice = createSlice({
name: 'modalQueue',
initialState: {
queue: [], // array of { type, props }
currentModal: null,
},
reducers: {
enqueueModal: (state, action) => {
state.queue.push(action.payload);
if (!state.currentModal) {
state.currentModal = state.queue.shift();
}
},
closeModal: (state) => {
state.currentModal = state.queue.shift() || null;
},
clearQueue: (state) => {
state.queue = [];
state.currentModal = null;
},
},
});
export const { enqueueModal, closeModal, clearQueue } = modalQueueSlice.actions;
export default modalQueueSlice.reducer;