github.com/minio/console@v1.4.1/web-app/src/screens/Console/Watch/watchSlice.ts (about) 1 // This file is part of MinIO Console Server 2 // Copyright (c) 2022 MinIO, Inc. 3 // 4 // This program is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Affero General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Affero General Public License for more details. 13 // 14 // You should have received a copy of the GNU Affero General Public License 15 // along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 import { createSlice, PayloadAction } from "@reduxjs/toolkit"; 18 import { EventInfo } from "./types"; 19 20 export interface WatchState { 21 messages: EventInfo[]; 22 } 23 24 const initialState: WatchState = { 25 messages: [], 26 }; 27 28 export const watchSlice = createSlice({ 29 name: "trace", 30 initialState, 31 reducers: { 32 watchMessageReceived: (state, action: PayloadAction<EventInfo>) => { 33 state.messages.push(action.payload); 34 }, 35 watchResetMessages: (state) => { 36 state.messages = []; 37 }, 38 }, 39 }); 40 41 export const { watchResetMessages, watchMessageReceived } = watchSlice.actions; 42 43 export default watchSlice.reducer;