Extract project workspace hook
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { FormEvent, useMemo, useState } from 'react'
|
||||
import { FormEvent, useEffect, useMemo, useState } from 'react'
|
||||
import { datasetsApi, jobsApi } from '../services/api'
|
||||
import type {
|
||||
AreaRead,
|
||||
DatasetCreateResponse,
|
||||
JobRead,
|
||||
RasterMetadataResponse,
|
||||
@@ -12,6 +13,7 @@ import { formatError } from '../lib/formatError'
|
||||
|
||||
interface DatasetWorkflowOptions {
|
||||
selectedProjectId: string | null
|
||||
areas: AreaRead[]
|
||||
datasets: DatasetCreateResponse[]
|
||||
loadProjectData: (projectId: string) => Promise<{ datasets: DatasetCreateResponse[] } | null>
|
||||
setErrorMessage: (message: string | null) => void
|
||||
@@ -27,6 +29,7 @@ function toRasterMetadata(metadata: Record<string, unknown> | null | undefined):
|
||||
|
||||
export function useDatasetWorkflow({
|
||||
selectedProjectId,
|
||||
areas,
|
||||
datasets,
|
||||
loadProjectData,
|
||||
setErrorMessage,
|
||||
@@ -72,6 +75,14 @@ export function useDatasetWorkflow({
|
||||
[rasterTileSize, rasterTileOverlap],
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
if (areas.length === 0) {
|
||||
setSelectedClipAreaId('')
|
||||
} else if (!selectedClipAreaId || !areas.some((area) => area.id === selectedClipAreaId)) {
|
||||
setSelectedClipAreaId(areas[0].id)
|
||||
}
|
||||
}, [areas, selectedClipAreaId])
|
||||
|
||||
const loadDatasetJobs = async (projectId: string, datasetId: string) => {
|
||||
const response = await jobsApi.list(projectId, { dataset_id: datasetId, limit: 20, offset: 0 })
|
||||
setJobs(response.items)
|
||||
|
||||
Reference in New Issue
Block a user