diff options
author | Michael Hunteman <michael@huntm.net> | 2024-09-20 11:19:34 -0700 |
---|---|---|
committer | Michael Hunteman <michael@huntm.net> | 2024-09-20 11:19:34 -0700 |
commit | a54a93b724a6104213b17271fc298e37adedc1c5 (patch) | |
tree | ea5d013e5a25806788b0dfd18d5e638ed141e4a7 /client/src/slices/snackbarSlice.ts | |
parent | 3aad1960e4ee9bce1155b4154c596daf09ee0ae5 (diff) |
Use redux for updating snackbar
Diffstat (limited to 'client/src/slices/snackbarSlice.ts')
-rw-r--r-- | client/src/slices/snackbarSlice.ts | 32 |
1 files changed, 32 insertions, 0 deletions
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; |