diff --git a/src/renderer/components/Data/DataStore.tsx b/src/renderer/components/Data/DataStore.tsx index 598a51a8901279a8030b6e2a44aef99bcab56114..c12326ac95bb53ed862d8d526df8bad1824356a5 100644 --- a/src/renderer/components/Data/DataStore.tsx +++ b/src/renderer/components/Data/DataStore.tsx @@ -70,15 +70,16 @@ export default function DataStore() { > <Grid container spacing={2} sx={{ flexGrow: 1 }}> {data && - filterByFilters(data, searchText).map((row) => ( + data.data && + filterByFilters(data.data, searchText).map((row) => ( <Grid xs={4}> <DatasetCard name={row.name} size={row.size} - key={row.id} description={row.description} repo={row.huggingfacerepo} - download + downloaded={row.downloaded} + local={false} location={undefined} parentMutate={mutate} /> diff --git a/src/renderer/components/Data/DatasetCard.tsx b/src/renderer/components/Data/DatasetCard.tsx index 1f6fb2d3fd1299f39be35fc10793fad63ca62255..b9d94cbefd96994e9fdf1b36e277752b9cb4c321 100644 --- a/src/renderer/components/Data/DatasetCard.tsx +++ b/src/renderer/components/Data/DatasetCard.tsx @@ -1,4 +1,3 @@ -import * as React from 'react'; import { useState } from 'react'; import { @@ -11,7 +10,12 @@ import { ModalDialog, Typography, } from '@mui/joy'; -import { DownloadIcon, FileTextIcon, Trash2Icon } from 'lucide-react'; +import { + DownloadIcon, + FileTextIcon, + Trash2Icon, + CheckIcon, +} from 'lucide-react'; import { formatBytes } from 'renderer/lib/utils'; import * as chatAPI from '../../lib/transformerlab-api-sdk'; @@ -25,14 +29,14 @@ export default function DatasetCard({ size, description, repo, - download = false, + downloaded, location, parentMutate, + local, }) { const [installing, setInstalling] = useState(null); - const [previewDatasetModalOpen, setPreviewDatasetModalOpen] = - React.useState(false); - const [datasetInfoModalOpen, setDatasetInfoModalOpen] = React.useState(false); + const [previewDatasetModalOpen, setPreviewDatasetModalOpen] = useState(false); + const [datasetInfoModalOpen, setDatasetInfoModalOpen] = useState(false); return ( <> @@ -81,7 +85,7 @@ export default function DatasetCard({ </div> </CardContent> <CardContent orientation="horizontal"> - {!download && ( + {downloaded && local && ( <> <Button color="neutral" @@ -111,16 +115,22 @@ export default function DatasetCard({ </Button> </> )} - {download && ( + {!local && ( <Button variant="solid" size="sm" color="primary" aria-label="Download" sx={{ ml: 'auto' }} - disabled={installing} + disabled={downloaded || installing} endDecorator={ - installing ? <CircularProgress /> : <DownloadIcon size="18px" /> + downloaded ? ( + <CheckIcon /> + ) : installing ? ( + <CircularProgress /> + ) : ( + <DownloadIcon size="18px" /> + ) } onClick={() => { setInstalling(true); @@ -146,7 +156,11 @@ export default function DatasetCard({ }); }} > - {installing ? 'Downloading' : 'Download'} + {downloaded + ? 'Downloaded' + : installing + ? 'Downloading' + : 'Download'}{' '} </Button> )} </CardContent> diff --git a/src/renderer/components/Data/DatasetInfoModal.tsx b/src/renderer/components/Data/DatasetInfoModal.tsx index 440f3f18c981fc7544f6908a61d7148e18079a39..946abe126277931da37165eff9df254dcafda3d7 100644 --- a/src/renderer/components/Data/DatasetInfoModal.tsx +++ b/src/renderer/components/Data/DatasetInfoModal.tsx @@ -1,5 +1,4 @@ /* eslint-disable camelcase */ -import React, { useEffect, useState } from 'react'; import useSWR from 'swr'; import { diff --git a/src/renderer/components/Data/LocalDatasets.tsx b/src/renderer/components/Data/LocalDatasets.tsx index b841ab8c1e26a71152c0d6d1b0bb316383e7f7f8..3b91ed8ab35c2257ee0a37bd13c9e47aac76b0e4 100644 --- a/src/renderer/components/Data/LocalDatasets.tsx +++ b/src/renderer/components/Data/LocalDatasets.tsx @@ -107,7 +107,6 @@ export default function LocalDatasets() { }} > <Grid container spacing={2} sx={{ flexGrow: 1 }}> - {data && console.log(data)} {data && filterByFiltersDatasetID(data, searchText).map((row) => ( <Grid xs={4}> @@ -118,6 +117,8 @@ export default function LocalDatasets() { description={row?.description} repo={row.huggingfacerepo} location={row?.location} + downloaded={true} + local={true} parentMutate={mutate} /> </Grid> diff --git a/src/renderer/components/Data/PreviewDatasetModal.tsx b/src/renderer/components/Data/PreviewDatasetModal.tsx index 0feb7721dac2f63b9ec6e7c9375676e08c32f404..b06622ca48ab65a4534fdf5025b6c84e08aa92ff 100644 --- a/src/renderer/components/Data/PreviewDatasetModal.tsx +++ b/src/renderer/components/Data/PreviewDatasetModal.tsx @@ -1,5 +1,5 @@ /* eslint-disable camelcase */ -import React, { useEffect, useState } from 'react'; +import { useEffect, useState } from 'react'; import useSWR from 'swr'; import { Button,