From a54a93b724a6104213b17271fc298e37adedc1c5 Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Fri, 20 Sep 2024 11:19:34 -0700 Subject: Use redux for updating snackbar --- client/src/slices/snackbarSlice.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 client/src/slices/snackbarSlice.ts (limited to 'client/src/slices/snackbarSlice.ts') diff --git a/client/src/slices/snackbarSlice.ts b/client/src/slices/snackbarSlice.ts new file mode 100644 index 0000000..eca9575 --- /dev/null +++ b/client/src/slices/snackbarSlice.ts @@ -0,0 +1,32 @@ +import { createSlice } from '@reduxjs/toolkit'; +import type { RootState } from '../store'; + +export interface SnackbarState { + open: boolean; + message: string; + severity?: 'success' | 'error'; +} + +const initialState: SnackbarState = { + open: false, + message: '', +}; + +export const snackbarSlice = createSlice({ + name: 'snackbar', + initialState, + reducers: { + open(state, action) { + state.open = true; + state.message = action.payload.message; + state.severity = action.payload.severity; + }, + close(state) { + state.open = false; + }, + }, +}); + +export const { open, close } = snackbarSlice.actions; +export const selectSnackbarState = (state: RootState) => state.snackbar; +export default snackbarSlice.reducer; -- cgit v1.2.3