Skip to content

Commit 6c78959

Browse files
authored
23 dashboard and breadcrumb need unique key prop (#202)
* fix p tag nested issue * fix key * fix more * key error * fix more list key issue * fix nested typograph issue
1 parent 83f55b2 commit 6c78959

File tree

12 files changed

+20796
-382
lines changed

12 files changed

+20796
-382
lines changed

frontend/package-lock.json

Lines changed: 20480 additions & 100 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/components/datasets/Dataset.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import {
4141
import CloseIcon from '@mui/icons-material/Close';
4242
import Layout from "../Layout";
4343
import {ActionsMenu} from "./ActionsMenu";
44-
import DatasetName from "./DatasetName";
4544

4645
const tab = {
4746
fontStyle: "normal",

frontend/src/components/datasets/DatasetCard.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {datasetDownloaded} from "../../actions/dataset";
99
import {useDispatch} from "react-redux";
1010
import {CardActionArea, IconButton, Tooltip} from "@mui/material";
1111
import {Download} from "@mui/icons-material";
12-
import {Favorite, Share} from "@material-ui/icons";
12+
// import {Favorite, Share} from "@material-ui/icons";
1313

1414
type DatasetCardProps = {
1515
id: string,
@@ -57,16 +57,16 @@ export default function DatasetCard(props: DatasetCardProps) {
5757
<Download/>
5858
</IconButton>
5959
</Tooltip>
60-
<Tooltip title="Favorite">
61-
<IconButton color="primary" aria-label="favorite" sx={{mr: 3}} disabled>
62-
<Favorite/>
63-
</IconButton>
64-
</Tooltip>
65-
<Tooltip title="Share">
66-
<IconButton color="primary" aria-label="share" sx={{mr: 3}} disabled>
67-
<Share/>
68-
</IconButton>
69-
</Tooltip>
60+
{/*<Tooltip title="Favorite">*/}
61+
{/* <IconButton color="primary" aria-label="favorite" sx={{mr: 3}} disabled>*/}
62+
{/* <Favorite/>*/}
63+
{/* </IconButton>*/}
64+
{/*</Tooltip>*/}
65+
{/*<Tooltip title="Share">*/}
66+
{/* <IconButton color="primary" aria-label="share" sx={{mr: 3}} disabled>*/}
67+
{/* <Share/>*/}
68+
{/* </IconButton>*/}
69+
{/*</Tooltip>*/}
7070
</CardActions>
7171
</Card>
7272
);

frontend/src/components/files/FilesTable.tsx

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ import {useSelector} from "react-redux";
1010
import {RootState} from "../../types/data";
1111
import {useNavigate} from "react-router-dom";
1212
import {Button} from "@mui/material";
13-
import FileMenu from "./FileMenu";
1413
import FolderIcon from '@mui/icons-material/Folder';
15-
import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile';
16-
import {parseDate} from "../../utils/common";
17-
import {VersionChip} from "../versions/VersionChip";
1814
import {theme} from "../../theme";
1915
import {FilesTableFileEntry} from "./FilesTableFileEntry";
2016
import FolderMenu from "./FolderMenu";
@@ -24,27 +20,27 @@ type FilesTableProps = {
2420
}
2521

2622
const iconStyle = {
27-
"vertical-align": "middle",
23+
verticalAlign: "middle",
2824
color: theme.palette.primary.main
2925
}
3026

3127
export default function FilesTable(props: FilesTableProps) {
3228
// mapStateToProps
33-
const filesInDataset = useSelector((state:RootState) => state.dataset.files);
34-
const foldersInDataset = useSelector((state:RootState) => state.folder.folders);
29+
const filesInDataset = useSelector((state: RootState) => state.dataset.files);
30+
const foldersInDataset = useSelector((state: RootState) => state.folder.folders);
3531
// use history hook to redirect/navigate between routes
3632
const history = useNavigate();
37-
const selectFile = (selectedFileId: string|undefined) => {
33+
const selectFile = (selectedFileId: string | undefined) => {
3834
// Redirect to file route with file Id and dataset id
3935
history(`/files/${selectedFileId}?dataset=${props.datasetId}`);
4036
};
41-
const selectFolder = (selectedFolderId: string|undefined) => {
37+
const selectFolder = (selectedFolderId: string | undefined) => {
4238
// Redirect to file route with file Id and dataset id
4339
history(`/datasets/${props.datasetId}?folder=${selectedFolderId}`);
4440
};
4541
return (
4642
<TableContainer component={Paper}>
47-
<Table sx={{ minWidth: 650 }} aria-label="simple table">
43+
<Table sx={{minWidth: 650}} aria-label="simple table">
4844
<TableHead>
4945
<TableRow>
5046
<TableCell>Name</TableCell>
@@ -65,7 +61,8 @@ export default function FilesTable(props: FilesTableProps) {
6561
<FolderIcon sx={iconStyle}/>
6662
<Button onClick={() => selectFolder(folder.id)}>{folder.name}</Button>
6763
</TableCell>
68-
<TableCell align="right">by {folder.author.first_name} {folder.author.last_name}</TableCell>
64+
<TableCell
65+
align="right">by {folder.author.first_name} {folder.author.last_name}</TableCell>
6966
<TableCell align="right">&nbsp;</TableCell>
7067
<TableCell align="right">&nbsp;</TableCell>
7168
<TableCell align="right"><FolderMenu folder={folder}/></TableCell>
@@ -76,7 +73,9 @@ export default function FilesTable(props: FilesTableProps) {
7673
<FilesTableFileEntry
7774
iconStyle={iconStyle}
7875
selectFile={selectFile}
79-
file={file} />
76+
file={file}
77+
key={file.id}
78+
/>
8079
))
8180
}
8281
</TableBody>

frontend/src/components/files/FilesTableFileEntry.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ import {theme} from "../../theme";
1111
import prettyBytes from 'pretty-bytes';
1212

1313
const iconStyle = {
14-
"vertical-align": "middle",
14+
verticalAlign: "middle",
1515
color: theme.palette.primary.main
1616
}
1717

1818
export function FilesTableFileEntry(props) {
1919

20-
const {selectFile, file,} = props;
20+
const {selectFile, file} = props;
2121

2222
return (
2323
<TableRow
2424
key={file.id}
2525
sx={{ '&:last-child td, &:last-child th': { border: 0 } }}
2626
>
27-
<TableCell component="th" scope="row">
27+
<TableCell component="th" scope="row" key={`${file.id}-icon`}>
2828
<InsertDriveFileIcon sx={iconStyle}/>
2929
<Button onClick={() => selectFile(file.id)}>{file.name}</Button>
3030
{/*TODO this should be version number; for now put version ID instead*/}

frontend/src/components/metadata/CreateMetadata.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ export const CreateMetadata = (props: MetadataType) => {
2929
return (
3030
<>
3131
{
32-
metadataDefinitionList.map((metadata) => {
32+
metadataDefinitionList.map((metadata,idx) => {
3333
return (
34-
<Box className="inputGroup">
34+
<Box className="inputGroup" key={idx}>
3535
<Typography variant="h6">{metadata.name}</Typography>
3636
<Typography variant="subtitle2">{metadata.description}</Typography>
3737
{
38-
metadata.fields.map(field => {
38+
metadata.fields.map((field, idxx) => {
3939
return React.cloneElement(
4040
// if nothing match fall back to default widget
4141
metadataConfig[field.widgetType ?? "NA"] ?? metadataConfig["NA"],
@@ -45,6 +45,7 @@ export const CreateMetadata = (props: MetadataType) => {
4545
options: field.config.options ?? [],
4646
setMetadata: setMetadata,
4747
initialReadOnly: false,
48+
key:idxx
4849
}
4950
)
5051
})

0 commit comments

Comments
 (0)