Improve dataset selection ergonomics
This commit is contained in:
@@ -15,6 +15,7 @@ interface DatasetFormState {
|
||||
|
||||
interface DatasetPanelProps {
|
||||
selectedProjectId: string | null
|
||||
selectedDatasetId: string | null
|
||||
areas: AreaRead[]
|
||||
datasets: DatasetCreateResponse[]
|
||||
datasetForm: DatasetFormState
|
||||
@@ -23,6 +24,8 @@ interface DatasetPanelProps {
|
||||
onUploadDataset: (event: FormEvent) => void
|
||||
onLoadDatasetDetails: (projectId: string, dataset: DatasetCreateResponse) => void
|
||||
onRefreshMetadata: (datasetId: string) => void
|
||||
onOpenDatasetInMap: (dataset: DatasetCreateResponse) => void
|
||||
onOpenDatasetExport: (dataset: DatasetCreateResponse) => void
|
||||
}
|
||||
|
||||
function formatBytes(value: number | null | undefined): string {
|
||||
@@ -52,6 +55,7 @@ function formatBounds(bounds: Record<string, number> | null | undefined): string
|
||||
|
||||
export function DatasetPanel({
|
||||
selectedProjectId,
|
||||
selectedDatasetId,
|
||||
areas,
|
||||
datasets,
|
||||
datasetForm,
|
||||
@@ -60,6 +64,8 @@ export function DatasetPanel({
|
||||
onUploadDataset,
|
||||
onLoadDatasetDetails,
|
||||
onRefreshMetadata,
|
||||
onOpenDatasetInMap,
|
||||
onOpenDatasetExport,
|
||||
}: DatasetPanelProps) {
|
||||
const readyDatasets = datasets.filter((dataset) => dataset.status === 'ready').length
|
||||
|
||||
@@ -124,7 +130,7 @@ export function DatasetPanel({
|
||||
{datasets.length === 0 ? <p>No datasets yet</p> : null}
|
||||
<ul className="dataset-list">
|
||||
{datasets.map((dataset) => (
|
||||
<li className="dataset-card" key={dataset.id}>
|
||||
<li className={dataset.id === selectedDatasetId ? 'dataset-card dataset-card-active' : 'dataset-card'} key={dataset.id}>
|
||||
<div className="dataset-card-header">
|
||||
<div>
|
||||
<strong>{dataset.name}</strong>
|
||||
@@ -152,6 +158,17 @@ export function DatasetPanel({
|
||||
>
|
||||
Select / details
|
||||
</button>
|
||||
<button className="secondary-action" type="button" onClick={() => onOpenDatasetInMap(dataset)}>
|
||||
Open in map
|
||||
</button>
|
||||
<button
|
||||
className="secondary-action"
|
||||
type="button"
|
||||
onClick={() => onOpenDatasetExport(dataset)}
|
||||
disabled={!(dataset.dataset_type === 'vector' || dataset.dataset_type === 'geojson')}
|
||||
>
|
||||
Export / QA
|
||||
</button>
|
||||
<button
|
||||
className="secondary-action"
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user