synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
54 lines • 3.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Programs = void 0;
var tslib_1 = require("tslib");
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var utils_1 = require("../../../utils");
var useGetQueryResultBundle_1 = (0, tslib_1.__importDefault)(require("../../../utils/hooks/SynapseAPI/useGetQueryResultBundle"));
var useShowDesktop_1 = (0, tslib_1.__importDefault)(require("../../../utils/hooks/useShowDesktop"));
var Programs_Mobile_1 = (0, tslib_1.__importDefault)(require("./Programs.Mobile"));
var Programs_Desktop_1 = (0, tslib_1.__importDefault)(require("./Programs.Desktop"));
var ColorGradient_1 = require("../../../containers/ColorGradient");
var queryUtils_1 = require("../../../utils/functions/queryUtils");
var Programs = function (props) {
var entityId = props.entityId, titleColumnName = props.titleColumnName, linkColumnName = props.linkColumnName, summaryColumnName = props.summaryColumnName, iconColumnName = props.iconColumnName, linkConfig = props.linkConfig, rgbIndex = props.rgbIndex, iconOptions = props.iconOptions;
var showDesktop = (0, useShowDesktop_1.default)();
var color = (0, ColorGradient_1.getColorPalette)(rgbIndex !== null && rgbIndex !== void 0 ? rgbIndex : 0, 2).colorPalette[0];
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: "select * from " + entityId,
},
};
var queryResultBundle = (0, useGetQueryResultBundle_1.default)(queryBundleRequest).data;
var titleColumnIndex = (0, queryUtils_1.getFieldIndex)(titleColumnName, queryResultBundle);
var summaryColumnIndex = (0, queryUtils_1.getFieldIndex)(summaryColumnName, queryResultBundle);
var linkColumnIndex = (0, queryUtils_1.getFieldIndex)(linkColumnName, queryResultBundle);
var iconColumnIndex = (0, queryUtils_1.getFieldIndex)(iconColumnName, queryResultBundle);
var matchColIndex = (0, queryUtils_1.getFieldIndex)(linkConfig.matchColumnName, queryResultBundle);
var baseExploreUrl = "/" + linkConfig.baseURL + "?" + linkConfig.URLColumnName + "=";
return (react_1.default.createElement("div", { className: "bootstrap-4-backport Programs" + (showDesktop ? '__Desktop' : '') }, queryResultBundle === null || queryResultBundle === void 0 ? void 0 : queryResultBundle.queryResult.queryResults.rows.map(function (el, index) {
var values = el.values;
var title = values[titleColumnIndex];
var summary = values[summaryColumnIndex];
var link = values[linkColumnIndex];
var iconValue = values[iconColumnIndex];
var matchValue = values[matchColIndex];
var ProgramsDataProps = {
title: title,
summary: summary,
link: link,
color: color,
exploreLink: "" + baseExploreUrl + matchValue,
iconValue: iconValue,
iconOptions: iconOptions,
};
return showDesktop ? (react_1.default.createElement(Programs_Desktop_1.default, (0, tslib_1.__assign)({}, ProgramsDataProps))) : (react_1.default.createElement(Programs_Mobile_1.default, (0, tslib_1.__assign)({}, ProgramsDataProps)));
})));
};
exports.Programs = Programs;
exports.default = exports.Programs;
//# sourceMappingURL=Programs.js.map