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

72 lines 4.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FeaturedToolsList = void 0; var tslib_1 = require("tslib"); var utils_1 = require("../../../utils"); var queryUtils_1 = require("../../../utils/functions/queryUtils"); var useGetQueryResultBundle_1 = (0, tslib_1.__importDefault)(require("../../../utils/hooks/SynapseAPI/useGetQueryResultBundle")); var react_1 = (0, tslib_1.__importStar)(require("react")); var FeaturedToolCard_1 = require("./FeaturedToolCard"); var ErrorBanner_1 = require("../../ErrorBanner"); var SynapseContext_1 = require("../../../utils/SynapseContext"); /** * Display a set of FeaturedToolCards (driven by a Table/View). Driven by the following annotations/column names: * 'id', 'name', 'type', and 'description'. */ var FeaturedToolsList = function (_a) { var entityId = _a.entityId, toolDetailPageURL = _a.toolDetailPageURL, _b = _a.idColumnName, idColumnName = _b === void 0 ? 'id' : _b, _c = _a.nameColumnName, nameColumnName = _c === void 0 ? 'name' : _c, _d = _a.descriptionColumnName, descriptionColumnName = _d === void 0 ? 'description' : _d, _e = _a.typeColumnName, typeColumnName = _e === void 0 ? 'type' : _e, _f = _a.dateColumnName, dateColumnName = _f === void 0 ? 'date' : _f; var sql = "SELECT \"" + idColumnName + "\", \"" + nameColumnName + "\", \"" + descriptionColumnName + "\", \"" + typeColumnName + "\", \"" + dateColumnName + "\" FROM " + entityId + " ORDER BY ROW_ID DESC LIMIT 3"; var queryBundleRequest = { concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest', entityId: entityId, partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS | utils_1.SynapseConstants.BUNDLE_MASK_QUERY_RESULTS, query: { sql: sql, }, }; var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken; var _g = (0, react_1.useState)([]), tools = _g[0], setTools = _g[1]; var _h = (0, react_1.useState)(), error = _h[0], setError = _h[1]; var _j = (0, useGetQueryResultBundle_1.default)(queryBundleRequest), queryResultBundle = _j.data, queryError = _j.error; (0, react_1.useEffect)(function () { var getData = function () { var _a; try { var idIndex_1 = (0, queryUtils_1.getFieldIndex)(idColumnName, queryResultBundle); var nameColumnIndex_1 = (0, queryUtils_1.getFieldIndex)(nameColumnName, queryResultBundle); var typeColumnIndex_1 = (0, queryUtils_1.getFieldIndex)(typeColumnName, queryResultBundle); var descriptionColumnIndex_1 = (0, queryUtils_1.getFieldIndex)(descriptionColumnName, queryResultBundle); var dateColumnIndex_1 = (0, queryUtils_1.getFieldIndex)(dateColumnName, queryResultBundle); var tools_1 = (_a = queryResultBundle === null || queryResultBundle === void 0 ? void 0 : queryResultBundle.queryResult.queryResults.rows.map(function (row) { return { name: row.values[nameColumnIndex_1], description: row.values[descriptionColumnIndex_1], type: row.values[typeColumnIndex_1], id: row.values[idIndex_1], date: row.values[dateColumnIndex_1] }; })) !== null && _a !== void 0 ? _a : []; if (queryError) { throw queryError; } if (tools_1.length === 0) { // wait for data to load return; } setTools(tools_1); } catch (error) { console.error(error); setError(error); } }; getData(); }, [entityId, accessToken, queryResultBundle, queryError, idColumnName, nameColumnName, typeColumnName, descriptionColumnName, dateColumnName]); return error ? (react_1.default.createElement(ErrorBanner_1.ErrorBanner, { error: error })) : (react_1.default.createElement("div", { className: "FeaturedToolList" }, tools.map(function (tool) { return (react_1.default.createElement(FeaturedToolCard_1.FeaturedToolCard, { key: tool.id, name: tool.name, type: tool.type, description: tool.description, id: tool.id, date: tool.date, toolDetailPageURL: toolDetailPageURL })); }))); }; exports.FeaturedToolsList = FeaturedToolsList; exports.default = exports.FeaturedToolsList; //# sourceMappingURL=FeaturedToolsList.js.map