22 lines
666 B
TypeScript
22 lines
666 B
TypeScript
import { useQuery } from '@tanstack/react-query'
|
|
import { apiService, DbTable } from '../services/api'
|
|
|
|
export function useDatabase() {
|
|
const tablesQuery = useQuery({
|
|
queryKey: ['tables'],
|
|
queryFn: () => apiService.getTables().then(res => res.data),
|
|
})
|
|
|
|
const useTableData = (schema: string | null, name: string | null) => useQuery({
|
|
queryKey: ['tableData', schema, name],
|
|
queryFn: () => (schema && name) ? apiService.getTableData(schema, name).then(res => res.data) : Promise.resolve([]),
|
|
enabled: !!(schema && name),
|
|
})
|
|
|
|
return {
|
|
tables: tablesQuery.data || [],
|
|
isLoadingTables: tablesQuery.isLoading,
|
|
useTableData,
|
|
}
|
|
}
|