| 123456789101112131415161718192021222324252627282930313233343536 |
- import { createSlice, PayloadAction } from '@reduxjs/toolkit';
- import emitter from '../../utils/eventEmitter';
- import store from '../store';
- interface GeneratorMonitorState {
- acquisitionState: number;
- }
- const initialState: GeneratorMonitorState = {
- acquisitionState: 0, // 0: idle, 1: started, 2: success, 3: failure
- };
- const generatorMonitorSlice = createSlice({
- name: 'generatorMonitor',
- initialState,
- reducers: {
- setAcquisitionState: (state, action: PayloadAction<number>) => {
- state.acquisitionState = action.payload;
- },
- },
- });
- emitter.on('ACQUISITION_STARTED', () => {
- store.dispatch(setAcquisitionState(1)); // Start acquisition
- });
- emitter.on('ACQUISITION_SUCCESS', () => {
- store.dispatch(setAcquisitionState(2)); // Acquisition success
- });
- emitter.on('ACQUISITION_FAILURE', () => {
- store.dispatch(setAcquisitionState(3)); // Acquisition failure
- });
- export const { setAcquisitionState } = generatorMonitorSlice.actions;
- export default generatorMonitorSlice.reducer;
|