MCPcopy Index your code
hub / github.com/TabularisDB/tabularis / useDataTypes

Function useDataTypes

src/hooks/useDataTypes.ts:7–48  ·  view source on GitHub ↗
(driver: string | undefined)

Source from the content-addressed store, hash-verified

5const dataTypesCache = new Map<string, DataTypeRegistry>();
6
7export function useDataTypes(driver: string | undefined) {
8 const [dataTypes, setDataTypes] = useState<DataTypeRegistry | null>(null);
9 const [loading, setLoading] = useState(true);
10 const [error, setError] = useState<string | null>(null);
11
12 useEffect(() => {
13 if (!driver) {
14 setDataTypes(null);
15 setLoading(false);
16 return;
17 }
18
19 const fetchDataTypes = async () => {
20 try {
21 setLoading(true);
22 setError(null);
23
24 if (dataTypesCache.has(driver)) {
25 setDataTypes(dataTypesCache.get(driver)!);
26 setLoading(false);
27 return;
28 }
29
30 const registry = await invoke<DataTypeRegistry>("get_data_types", {
31 driver,
32 });
33
34 dataTypesCache.set(driver, registry);
35 setDataTypes(registry);
36 } catch (err) {
37 console.error("Failed to fetch data types:", err);
38 setError(String(err));
39 } finally {
40 setLoading(false);
41 }
42 };
43
44 fetchDataTypes();
45 }, [driver]);
46
47 return { dataTypes, loading, error };
48}

Callers 3

ModifyColumnModalFunction · 0.90
CreateTableModalFunction · 0.90
ClipboardImportModalFunction · 0.90

Calls 1

fetchDataTypesFunction · 0.85

Tested by

no test coverage detected