UNPKG

synapse-react-client

Version:

[![Build Status](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client.svg?branch=main)](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synaps

91 lines 5.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreatePackageV2 = exports.TEMPLATE_ERROR_FILE_NAME = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importStar)(require("react")); var react_bootstrap_1 = require("react-bootstrap"); var SynapseClient_1 = require("../../utils/SynapseClient"); var SynapseContext_1 = require("../../utils/SynapseContext"); var FullWidthAlert_1 = (0, tslib_1.__importDefault)(require("../FullWidthAlert")); exports.TEMPLATE_ERROR_FILE_NAME = 'Please provide a package file name and try again.'; var CreatePackageV2 = function (props) { var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken; var _a = (0, react_1.useState)(false), isLoading = _a[0], setIsLoading = _a[1]; var _b = (0, react_1.useState)(''), fileName = _b[0], setZipFileName = _b[1]; var _c = (0, react_1.useState)(), alert = _c[0], setAlert = _c[1]; var _d = (0, react_1.useState)(undefined), bulkFileDownloadResponse = _d[0], setBulkFileDownloadResponse = _d[1]; var onPackageCreation = props.onPackageCreation; var createPackageHandler = function (event) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () { var fileNameWithZipExtension, currentBulkFileDownloadResponse, resultFileHandleId, _a, err_1, err_2; return (0, tslib_1.__generator)(this, function (_b) { switch (_b.label) { case 0: event.preventDefault(); if (!fileName) { setAlert({ message: exports.TEMPLATE_ERROR_FILE_NAME, variant: 'danger', }); return [2 /*return*/]; } setIsLoading(true); _b.label = 1; case 1: _b.trys.push([1, 7, 8, 9]); fileNameWithZipExtension = fileName + ".zip"; return [4 /*yield*/, (0, SynapseClient_1.createPackageFromDownloadListV2)(fileNameWithZipExtension, accessToken)]; case 2: currentBulkFileDownloadResponse = _b.sent(); setBulkFileDownloadResponse(currentBulkFileDownloadResponse); resultFileHandleId = currentBulkFileDownloadResponse.resultFileHandleId; _b.label = 3; case 3: _b.trys.push([3, 5, , 6]); //reset _a = window.location; return [4 /*yield*/, (0, SynapseClient_1.getFileHandleByIdURL)(resultFileHandleId, accessToken)]; case 4: //reset _a.href = _b.sent(); setZipFileName(''); setBulkFileDownloadResponse(undefined); onPackageCreation(); return [3 /*break*/, 6]; case 5: err_1 = _b.sent(); console.error('Err on getFileHandleByIdURL = ', err_1); return [3 /*break*/, 6]; case 6: return [3 /*break*/, 9]; case 7: err_2 = _b.sent(); setAlert({ message: err_2.reason, variant: 'danger', }); return [3 /*break*/, 9]; case 8: setIsLoading(false); return [7 /*endfinally*/]; case 9: return [2 /*return*/]; } }); }); }; var onChange = function (event) { setZipFileName(event.currentTarget.value); }; return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: "CreatePackageV2 bootstrap-4-backport" }, react_1.default.createElement("div", { className: "createPackageStep" }, react_1.default.createElement("span", { className: "createPackageTitle" }, "Create your Download Package"), react_1.default.createElement("span", { className: "createPackageDescription" }, "Name your download package and select Download Package to get started."), !isLoading && !bulkFileDownloadResponse && react_1.default.createElement("div", { className: "inputAndCreateButton" }, react_1.default.createElement("input", { onChange: onChange, type: "text", placeholder: "PackageName", style: { width: '233px' } }), react_1.default.createElement("span", { className: "zipUI" }, ".zip"), react_1.default.createElement(react_bootstrap_1.Button, { variant: fileName ? 'primary' : 'dark', onClick: createPackageHandler, type: "button", style: { marginLeft: 20 }, disabled: fileName ? false : true }, "Download Package")), isLoading && (react_1.default.createElement("div", { className: "creatingPackage" }, react_1.default.createElement("span", { className: "spinner" }), react_1.default.createElement("span", { style: { marginLeft: 5 } }, "Creating package..."))))), react_1.default.createElement(FullWidthAlert_1.default, { show: !!alert, variant: (alert === null || alert === void 0 ? void 0 : alert.variant) ? alert.variant : 'success', description: alert === null || alert === void 0 ? void 0 : alert.message, autoCloseAfterDelayInSeconds: 10, onClose: function () { setAlert(undefined); } }))); }; exports.CreatePackageV2 = CreatePackageV2; //# sourceMappingURL=CreatePackageV2.js.map