Merge branch '21026-sanitize-html'
[arvados.git] / src / store / snackbar / snackbar-reducer.ts
index 73c566fc8cb95945e7b9b95abea9dfa4e00e6684..c3fcfb0795e280fe36a844a4208e45c581b44838 100644 (file)
@@ -24,14 +24,26 @@ export const snackbarReducer = (state = initialState, action: SnackbarAction) =>
                 messages: state.messages.concat({
                     message: data.message,
                     hideDuration: data.hideDuration ? data.hideDuration : DEFAULT_HIDE_DURATION,
-                    kind: data.kind ? data.kind : SnackbarKind.INFO
+                    kind: data.kind ? data.kind : SnackbarKind.INFO, 
+                    link: data.link
                 })
             };
         },
-        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 {