// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
-import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox, Button } from '@material-ui/core';
-import { FavoriteStar } from '../favorite-star/favorite-star';
+import { Grid, Typography, withStyles, Tooltip, IconButton, Checkbox } from '@material-ui/core';
+import { FavoriteStar, PublicFavoriteStar } from '../favorite-star/favorite-star';
import { ResourceKind, TrashableResource } from '~/models/resource';
import { ProjectIcon, CollectionIcon, ProcessIcon, DefaultIcon, WorkflowIcon, ShareIcon } from '~/components/icon/icon';
import { formatDate, formatFileSize } from '~/common/formatters';
import { toggleIsActive, toggleIsAdmin } from '~/store/users/users-actions';
import { LinkResource } from '~/models/link';
import { navigateTo } from '~/store/navigation/navigation-action';
-import { withResource, getDataFromResource, withResourceData } from '~/views-components/data-explorer/with-resources';
+import { withResourceData } from '~/views-components/data-explorer/with-resources';
+import { extractUuidKind } from '~/models/resource';
const renderName = (item: { name: string; uuid: string, kind: string }) =>
<Grid container alignItems="center" wrap="nowrap" spacing={16}>
<Grid item>
- {renderIcon(item)}
+ {renderIcon(item.kind)}
</Grid>
<Grid item>
- <Typography color="primary" style={{ width: '450px' }}>
+ <Typography color="primary" style={{ width: 'auto' }}>
{item.name}
</Typography>
</Grid>
<Grid item>
<Typography variant="caption">
<FavoriteStar resourceUuid={item.uuid} />
+ <PublicFavoriteStar resourceUuid={item.uuid} />
</Typography>
</Grid>
</Grid>;
return resource || { name: '', uuid: '', kind: '' };
})(renderName);
-const renderIcon = (item: { kind: string }) => {
- switch (item.kind) {
+const renderIcon = (kind: string) => {
+ switch (kind) {
case ResourceKind.PROJECT:
return <ProjectIcon />;
case ResourceKind.COLLECTION:
const renderWorkflowName = (item: { name: string; uuid: string, kind: string, ownerUuid: string }) =>
<Grid container alignItems="center" wrap="nowrap" spacing={16}>
<Grid item>
- {renderIcon(item)}
+ {renderIcon(item.kind)}
</Grid>
<Grid item>
<Typography color="primary" style={{ width: '100px' }}>
];
export const ResourceCluster = (props: { uuid: string }) => {
- const p = props.uuid.indexOf('-');
- const clusterId = p >= 5 ? props.uuid.substr(0, p) : '';
- const ci = p >= 5 ? (props.uuid.charCodeAt(0) + props.uuid.charCodeAt(1)) % clusterColors.length : 0;
+ const CLUSTER_ID_LENGTH = 5;
+ const pos = props.uuid.indexOf('-');
+ const clusterId = pos >= CLUSTER_ID_LENGTH ? props.uuid.substr(0, pos) : '';
+ const ci = pos >= CLUSTER_ID_LENGTH ? (props.uuid.charCodeAt(0) + props.uuid.charCodeAt(1)) % clusterColors.length : 0;
return <Typography>
<div style={{
backgroundColor: clusterColors[ci][0],
const currentLabel = resourceLabel(item.tailKind);
const isUnknow = currentLabel === "Unknown";
return (<div>
- { !isUnknow ? (
- renderLink(dispatch, item.tailUuid, currentLabel)
- ) : (
+ {!isUnknow ? (
+ renderLink(dispatch, item.tailUuid, currentLabel)
+ ) : (
<Typography noWrap color="default">
{item.tailUuid}
</Typography>
- )}
+ )}
</div>);
};