// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import { Dispatch } from "redux"; import { RootState } from "store/store"; import { ServiceRepository } from "services/services"; import { dialogActions } from 'store/dialog/dialog-actions'; import { getNewExtraToken } from "../auth/auth-action"; import { CollectionResource } from "models/collection"; export const COLLECTION_WEBDAV_S3_DIALOG_NAME = 'collectionWebdavS3Dialog'; export interface WebDavS3InfoDialogData { uuid: string; token: string; downloadUrl: string; collectionsUrl: string; localCluster: string; username: string; activeTab: number; collectionName: string; setActiveTab: (event: any, tabNr: number) => void; } export const openWebDavS3InfoDialog = (uuid: string, activeTab?: number) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { await dispatch(getNewExtraToken(true)); dispatch(dialogActions.OPEN_DIALOG({ id: COLLECTION_WEBDAV_S3_DIALOG_NAME, data: { title: 'Open with 3rd party client', token: getState().auth.extraApiToken || getState().auth.apiToken, downloadUrl: getState().auth.config.keepWebServiceUrl, collectionsUrl: getState().auth.config.keepWebInlineServiceUrl, localCluster: getState().auth.localCluster, username: getState().auth.user!.username, activeTab: activeTab || 0, collectionName: (getState().resources[uuid] as CollectionResource).name, setActiveTab: (event: any, tabNr: number) => dispatch(openWebDavS3InfoDialog(uuid, tabNr)), uuid } })); };