1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import * as React from 'react';
6 import { connect } from 'react-redux';
8 import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
9 import { DataColumns } from '~/components/data-table/data-table';
10 import { ResourceUuid, ResourceFirstName, ResourceLastName, ResourceEmail, ResourceUsername } from '~/views-components/data-explorer/renderers';
11 import { createTree } from '~/models/tree';
12 import { noop } from 'lodash/fp';
13 import { RootState } from '~/store/store';
14 import { GROUP_DETAILS_PANEL_ID } from '~/store/group-details-panel/group-details-panel-actions';
16 export enum GroupDetailsPanelColumnNames {
17 FIRST_NAME = "First name",
18 LAST_NAME = "Last name",
21 USERNAME = "Username",
24 export const groupDetailsPanelColumns: DataColumns<string> = [
26 name: GroupDetailsPanelColumnNames.FIRST_NAME,
29 filters: createTree(),
30 render: uuid => <ResourceFirstName uuid={uuid} />
33 name: GroupDetailsPanelColumnNames.LAST_NAME,
36 filters: createTree(),
37 render: uuid => <ResourceLastName uuid={uuid} />
40 name: GroupDetailsPanelColumnNames.UUID,
43 filters: createTree(),
44 render: uuid => <ResourceUuid uuid={uuid} />
47 name: GroupDetailsPanelColumnNames.EMAIL,
50 filters: createTree(),
51 render: uuid => <ResourceEmail uuid={uuid} />
54 name: GroupDetailsPanelColumnNames.USERNAME,
57 filters: createTree(),
58 render: uuid => <ResourceUsername uuid={uuid} />
62 const mapStateToProps = (state: RootState) => {
64 resources: state.resources
68 const mapDispatchToProps = {};
70 export interface GroupDetailsPanelProps { }
72 export const GroupDetailsPanel = connect(
73 mapStateToProps, mapDispatchToProps
75 class GroupDetailsPanel extends React.Component<GroupDetailsPanelProps> {
80 id={GROUP_DETAILS_PANEL_ID}
82 onRowDoubleClick={noop}
84 contextMenuColumn={true}