From 964d8a574e661f1939a4ff858cce9d9684e5cdd5 Mon Sep 17 00:00:00 2001 From: Jay Hodgson Date: Tue, 22 Jun 2021 15:52:55 -0700 Subject: [PATCH 01/11] plug download cart page into existing solution (where it is in a dialog for now) --- .../download_list/DownloadConfirmation.tsx | 46 ++++++++++++------- .../download_list/DownloadListTable.tsx | 13 +++--- .../table/table-top/DownloadLoginModal.tsx | 2 +- .../table/table-top/DownloadOptions.tsx | 2 +- src/lib/template_style/_theme.scss | 8 ++++ src/lib/utils/SynapseClient.ts | 36 +++++++++++++++ .../AddToDownloadListRequest.ts | 9 ++++ .../AddToDownloadListResponse.ts | 5 ++ 8 files changed, 96 insertions(+), 25 deletions(-) create mode 100644 src/lib/utils/synapseTypes/DownloadListV2/AddToDownloadListRequest.ts create mode 100644 src/lib/utils/synapseTypes/DownloadListV2/AddToDownloadListResponse.ts diff --git a/src/lib/containers/download_list/DownloadConfirmation.tsx b/src/lib/containers/download_list/DownloadConfirmation.tsx index dcf7271e30..adb098614b 100644 --- a/src/lib/containers/download_list/DownloadConfirmation.tsx +++ b/src/lib/containers/download_list/DownloadConfirmation.tsx @@ -17,8 +17,10 @@ import { QUERY_FILTERS_EXPANDED_CSS, } from '../QueryWrapper' import SignInButton from '../SignInButton' -import { Alert } from 'react-bootstrap' +import { Alert, Modal } from 'react-bootstrap' import { useSynapseContext } from '../../utils/SynapseContext' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import DownloadCartPage from '../download_list_v2/DownloadCartPage' enum StatusEnum { LOADING_INFO, @@ -35,10 +37,9 @@ export type DownloadConfirmationState = { downloadEstimate?: string status: StatusEnum errorMessage?: string - ownerId?: string } export type DownloadConfirmationProps = { - fnClose?: Function + fnClose?: () => void getLastQueryRequest?: () => QueryBundleRequest topLevelControlsState?: TopLevelControlsState updateParentState?: ( @@ -52,15 +53,18 @@ async function addToDownload( query: Query, token: string, ): Promise<[StatusEnum, string]> { - const req: AddFilesToDownloadListRequest = { - concreteType: - 'org.sagebionetworks.repo.model.file.AddFileToDownloadListRequest', - query: query, - } try { - const result = await SynapseClient.addFilesToDownloadList(req, token) - const ownerId = result.downloadList.ownerId - return [StatusEnum.SUCCESS, ownerId] + if (!SynapseClient.isInSynapseExperimentalMode()) { + const req: AddFilesToDownloadListRequest = { + concreteType: + 'org.sagebionetworks.repo.model.file.AddFileToDownloadListRequest', + query: query, + } + await SynapseClient.addFilesToDownloadList(req, token) + } else { + await SynapseClient.addFilesToDownloadListV2(query, token) + } + return [StatusEnum.SUCCESS, ''] } catch (error) { return [StatusEnum.ERROR, error.reason] } @@ -199,7 +203,7 @@ export const DownloadConfirmation: React.FunctionComponent { switch (status) { case StatusEnum.LOADING_INFO: @@ -247,7 +250,6 @@ export const DownloadConfirmation: React.FunctionComponent View Download List - {onExportTable && ( or @@ -284,7 +286,7 @@ export const DownloadConfirmation: React.FunctionComponent -
{getContent(state, accessToken)}
+
{getContent(state)}
{state.status !== StatusEnum.PROCESSING && (