Files
geointel/frontend/src/hooks/useProviderCapabilities.ts
T
Codex 87d0d84bd8
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled
Extract frontend orchestration hooks
2026-06-17 07:10:39 +02:00

32 lines
1.0 KiB
TypeScript

import { useMemo, useState } from 'react'
import { externalApi } from '../services/api'
import type { ProviderCapability } from '../types'
export function useProviderCapabilities() {
const [providerCapabilities, setProviderCapabilities] = useState<ProviderCapability[]>([])
const [loadingCapabilities, setLoadingCapabilities] = useState(false)
const [capabilitiesError, setCapabilitiesError] = useState<string | null>(null)
const providers = useMemo(() => providerCapabilities, [providerCapabilities])
const loadCapabilities = async () => {
setLoadingCapabilities(true)
setCapabilitiesError(null)
try {
const providerResponse = await externalApi.listProviders()
setProviderCapabilities(providerResponse.providers)
} catch (error) {
setCapabilitiesError(error instanceof Error ? error.message : 'Failed to load external capabilities')
} finally {
setLoadingCapabilities(false)
}
}
return {
providers,
loadingCapabilities,
capabilitiesError,
loadCapabilities,
}
}