Merge remote-tracking branch 'origin/main' into 19311-Project-Search-field-auto-clears
[arvados-workbench2.git] / src / store / snackbar / snackbar-reducer.ts
index fa1717c7a4aba0cd51b0e633d486150fde87b64a..c3fcfb0795e280fe36a844a4208e45c581b44838 100644 (file)
@@ -29,10 +29,21 @@ export const snackbarReducer = (state = initialState, action: SnackbarAction) =>
                 })
             };
         },
-        CLOSE_SNACKBAR: () => ({
-            ...state,
-            open: false
-        }),
+        CLOSE_SNACKBAR: (payload) => {
+            let newMessages: any = [...state.messages];// state.messages.filter(({ message }) => message !== payload);
+
+            if (payload === undefined || JSON.stringify(payload) === '{}') {
+                newMessages.pop();
+            } else {
+                newMessages = state.messages.filter((message, index) => index !== payload);
+            }
+
+            return {
+                ...state,
+                messages: newMessages,
+                open: newMessages.length > 0
+            }
+        },
         SHIFT_MESSAGES: () => {
             const messages = state.messages.filter((m, idx) => idx > 0);
             return {