Federate official Belgium data sources
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
import { datasetsApi } from '../services/api'
|
||||
import { useCallback, useEffect, useState } from 'react'
|
||||
import { datasetsApi, externalApi } from '../services/api'
|
||||
import { formatError } from '../lib/formatError'
|
||||
import type {
|
||||
DhmvProductRead,
|
||||
@@ -9,7 +9,7 @@ import type {
|
||||
ThematicRasterProductRead,
|
||||
} from '../types'
|
||||
|
||||
interface OfficialMapProducts {
|
||||
export interface OfficialMapProducts {
|
||||
thematic: ThematicRasterProductRead[]
|
||||
dhmv: DhmvProductRead[]
|
||||
floodHazard: FloodHazardProductRead[]
|
||||
@@ -78,5 +78,26 @@ export function useOfficialMapProducts(selectedProjectId: string | null) {
|
||||
}
|
||||
}, [selectedProjectId])
|
||||
|
||||
return { products, loading, error }
|
||||
const resolveCoverage = useCallback(
|
||||
async (bbox: { minx: number; miny: number; maxx: number; maxy: number }) => {
|
||||
if (!selectedProjectId) {
|
||||
setError('Selecteer eerst een werkruimte.')
|
||||
return null
|
||||
}
|
||||
try {
|
||||
const coverage = await externalApi.resolveCoverage({
|
||||
projectId: selectedProjectId,
|
||||
bbox,
|
||||
})
|
||||
setError(null)
|
||||
return coverage
|
||||
} catch (requestError) {
|
||||
setError(formatError(requestError, 'De regionale databronnen konden niet veilig worden bepaald.'))
|
||||
return null
|
||||
}
|
||||
},
|
||||
[selectedProjectId],
|
||||
)
|
||||
|
||||
return { products, loading, error, resolveCoverage }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user