From: Lisa Knox Date: Fri, 1 Sep 2023 13:32:57 +0000 (-0400) Subject: 15768: added copytoclipboard snackbar Arvados-DCO-1.1-Signed-off-by: Lisa Knox --- diff --git a/src/store/open-in-new-tab/open-in-new-tab.actions.ts b/src/store/open-in-new-tab/open-in-new-tab.actions.ts index f9b1ef55aa..6a1ec643a6 100644 --- a/src/store/open-in-new-tab/open-in-new-tab.actions.ts +++ b/src/store/open-in-new-tab/open-in-new-tab.actions.ts @@ -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) => (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, + }) + ); } };