15768: added copytoclipboard snackbar Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa...
authorLisa Knox <lisaknox83@gmail.com>
Fri, 1 Sep 2023 13:32:57 +0000 (09:32 -0400)
committerLisa Knox <lisaknox83@gmail.com>
Fri, 1 Sep 2023 13:32:57 +0000 (09:32 -0400)
src/store/open-in-new-tab/open-in-new-tab.actions.ts

index f9b1ef55aa05051342644bd08104dd926092bbf4..6a1ec643a619c6b473c750b4575ad7856c502fa8 100644 (file)
@@ -2,33 +2,42 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import copy from 'copy-to-clipboard';
-import { Dispatch } from 'redux';
-import { getNavUrl } from 'routes/routes';
-import { RootState } from 'store/store';
+import copy from "copy-to-clipboard";
+import { Dispatch } from "redux";
+import { getNavUrl } from "routes/routes";
+import { RootState } from "store/store";
+import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
 
 export const openInNewTabAction = (resource: any) => (dispatch: Dispatch, getState: () => RootState) => {
     const url = getNavUrl(resource.uuid, getState().auth);
 
-    if (url[0] === '/') {
-        window.open(`${window.location.origin}${url}`, '_blank');
+    if (url[0] === "/") {
+        window.open(`${window.location.origin}${url}`, "_blank");
     } else if (url.length) {
-        window.open(url, '_blank');
+        window.open(url, "_blank");
     }
 };
 
 export const copyToClipboardAction = (resources: Array<any>) => (dispatch: Dispatch, getState: () => RootState) => {
     // Copy to clipboard omits token to avoid accidental sharing
 
-    let output = '';
+    let output = "";
 
-    resources.forEach((resource) => {
+    resources.forEach(resource => {
         let url = getNavUrl(resource.uuid, getState().auth, false);
-        if (url[0] === '/') url = `${window.location.origin}${url}`;
+        if (url[0] === "/") url = `${window.location.origin}${url}`;
         output += output.length ? `, ${url}` : url;
     });
 
     if (output.length) {
-        copy(output);
+        const wasCopied = copy(output);
+        if (wasCopied)
+            dispatch(
+                snackbarActions.OPEN_SNACKBAR({
+                    message: "Copied",
+                    hideDuration: 2000,
+                    kind: SnackbarKind.SUCCESS,
+                })
+            );
     }
 };