X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6f80d59b4d111454ce848f18c93aec8a891ff908..562687ce72e709d485aa47773117a51a764a6606:/services/workbench2/src/views-components/data-explorer/renderers.tsx diff --git a/services/workbench2/src/views-components/data-explorer/renderers.tsx b/services/workbench2/src/views-components/data-explorer/renderers.tsx index 45565c4a22..bb49b6cf42 100644 --- a/services/workbench2/src/views-components/data-explorer/renderers.tsx +++ b/services/workbench2/src/views-components/data-explorer/renderers.tsx @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0 import React from "react"; -import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox, Chip } from "@material-ui/core"; +import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox, Chip, withTheme } from "@material-ui/core"; import { FavoriteStar, PublicFavoriteStar } from "../favorite-star/favorite-star"; import { Resource, ResourceKind, TrashableResource } from "models/resource"; import { @@ -21,6 +21,7 @@ import { ActiveIcon, SetupIcon, InactiveIcon, + ErrorIcon, } from "components/icon/icon"; import { formatDate, formatFileSize, formatTime } from "common/formatters"; import { resourceLabel } from "common/labels"; @@ -64,6 +65,7 @@ export const toggleIsAdmin = (uuid: string) => dispatch(loadUsersPanel()); return newActivity; }; +import { InlinePulser } from "components/loading/inline-pulser"; const renderName = (dispatch: Dispatch, item: GroupContentsResource) => { const navFunc = "groupClass" in item && item.groupClass === GroupClass.ROLE ? navigateToGroupDetails : navigateTo; @@ -537,9 +539,9 @@ const renderResourceLink = (dispatch: Dispatch, item: Resource ) => { onClick={() => { item.kind === ResourceKind.GROUP && (item as GroupResource).groupClass === "role" ? dispatch(navigateToGroupDetails(item.uuid)) - : item.kind === ResourceKind.USER + : item.kind === ResourceKind.USER ? dispatch(navigateToUserProfile(item.uuid)) - : dispatch(navigateTo(item.uuid)); + : dispatch(navigateTo(item.uuid)); }} > {resourceLabel(item.kind, item && item.kind === ResourceKind.GROUP ? (item as GroupResource).groupClass || "" : "")}:{" "} @@ -912,7 +914,6 @@ const _resourceWithName = withStyles( {uuid} @@ -923,7 +924,6 @@ const _resourceWithName = withStyles( {userFullname} ({uuid}) @@ -1146,3 +1146,30 @@ export const ContainerRunTime = connect((state: RootState, props: { uuid: string } } ); + +export const GroupMembersCount = connect( + (state: RootState, props: { uuid: string }) => { + const group = getResource(props.uuid)(state.resources); + + return { + value: group?.memberCount, + }; + + } +)(withTheme()((props: {value: number | null | undefined, theme:ArvadosTheme}) => { + if (props.value === undefined) { + // Loading + return + + ; + } else if (props.value === null) { + // Error + return + + + + ; + } else { + return ; + } +}));