Files
metabuilder/postgres/src/hooks/useTableData.ts
johndoe6345789 a51130a127 feat: Add external low-code and postgres repositories
- codegen: Low-code React app with JSON-driven component system
- packagerepo: Schema-driven package repository with backend/frontend
- postgres: Next.js app with Drizzle ORM and PostgreSQL

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 16:48:52 +00:00

39 lines
955 B
TypeScript

/**
* Hook for fetching and managing table data
*/
import { useState, useCallback, useEffect } from 'react';
import { useApiCall } from './useApiCall';
export function useTableData(tableName?: string) {
const { loading, error, execute } = useApiCall();
const [queryResult, setQueryResult] = useState<any>(null);
const fetchTableData = useCallback(async (table: string) => {
try {
const result = await execute('/api/admin/table-data', {
method: 'POST',
body: { tableName: table },
});
setQueryResult(result);
return result;
} catch (err) {
console.error('Failed to fetch table data:', err);
throw err;
}
}, [execute]);
useEffect(() => {
if (tableName) {
fetchTableData(tableName);
}
}, [tableName, fetchTableData]);
return {
data: queryResult,
loading,
error,
refresh: () => tableName && fetchTableData(tableName),
fetchTableData,
};
}