@redocly/theme
Version:
Shared UI components lib
50 lines • 3.24 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CatalogEntityRelationsTable = CatalogEntityRelationsTable;
const react_1 = __importDefault(require("react"));
const styled_components_1 = __importDefault(require("styled-components"));
const CatalogActionsRow_1 = require("../../../../components/Catalog/CatalogActionsRow");
const CatalogEntityRelationsTableContent_1 = require("../../../../components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTableContent");
const hooks_1 = require("../../../../core/hooks");
const constants_1 = require("../../../../core/constants");
function CatalogEntityRelationsTable({ entity, entitiesCatalogConfig, catalogConfig, relations, query, searchQuery, setSearchQuery, heading, columns, setSortOption, sortOption, handleSortClick, isColumnSorted, shouldShowLoadMore, listType, }) {
const { useTelemetry } = (0, hooks_1.useThemeHooks)();
const telemetry = useTelemetry();
const { getEntityDetailsLink } = (0, hooks_1.useCatalogEntityDetails)({
catalogConfig,
entitiesCatalogConfig,
});
const onRowClick = (relatedEntity) => {
if (searchQuery) {
telemetry.sendCatalogEntitiesRelatedEntitiesListSearchResultClickMessage([
{
id: relatedEntity.id,
object: 'catalog_entity',
uri: getEntityDetailsLink(relatedEntity),
query: searchQuery,
entityKey: entity.key,
entityType: entity.type,
relationType: constants_1.reverseRelationMap[relatedEntity.relationType],
relatedEntityKey: relatedEntity.key,
relatedEntityType: relatedEntity.type,
},
]);
}
};
return (react_1.default.createElement(CatalogEntityRelationsTableWrapper, { "data-component-name": "Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable" },
heading && react_1.default.createElement(Heading, null, heading),
react_1.default.createElement(CatalogActionsRow_1.CatalogActionsRow, { searchQuery: searchQuery, setSearchQuery: setSearchQuery, sortOption: sortOption, setSortOption: setSortOption, style: { marginBottom: '12px' } }),
react_1.default.createElement(CatalogEntityRelationsTableContent_1.CatalogEntityRelationsTableContent, { entitiesCatalogConfig: entitiesCatalogConfig, catalogConfig: catalogConfig, relations: relations, query: query, searchQuery: searchQuery, columns: columns, setSortOption: setSortOption, sortOption: sortOption, handleSortClick: handleSortClick, isColumnSorted: isColumnSorted, shouldShowLoadMore: shouldShowLoadMore, listType: listType, onRowClick: onRowClick })));
}
const CatalogEntityRelationsTableWrapper = styled_components_1.default.div `
min-width: 0;
`;
const Heading = styled_components_1.default.h2 `
margin: var(--spacing-base) 0;
font-size: var(--font-size-md);
color: var(--catalog-metadata-heading-color);
`;
//# sourceMappingURL=CatalogEntityRelationsTable.js.map