18874: Add 'services/workbench2/' from commit 'f6f88d9ca9cdeeeebfadcfe999789bfb9f69e5c6'
[arvados.git] / services / workbench2 / src / store / open-in-new-tab / open-in-new-tab.actions.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import copy from 'copy-to-clipboard';
6 import { Dispatch } from 'redux';
7 import { getNavUrl } from 'routes/routes';
8 import { RootState } from 'store/store';
9
10 export const openInNewTabAction = (resource: any) => (dispatch: Dispatch, getState: () => RootState) => {
11     const url = getNavUrl(resource.uuid, getState().auth);
12
13     if (url[0] === '/') {
14         window.open(`${window.location.origin}${url}`, '_blank');
15     } else if (url.length) {
16         window.open(url, '_blank');
17     }
18 };
19
20 export const copyToClipboardAction = (resource: any) => (dispatch: Dispatch, getState: () => RootState) => {
21     // Copy to clipboard omits token to avoid accidental sharing
22     const url = getNavUrl(resource.uuid, getState().auth, false);
23
24     if (url[0] === '/') {
25         copy(`${window.location.origin}${url}`);
26     } else if (url.length) {
27         copy(url);
28     }
29 };