Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit a15f3d7

Browse files
committed
List tables
1 parent 8ea8126 commit a15f3d7

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

ui/src/components/DatabaseViewerDialog.tsx

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export default function DatabaseViewerDialog({
3131
database: IDBConnection;
3232
}) {
3333
const [open, setOpen] = React.useState(false);
34-
const { getDBTables } = useGetDatabaseTables(database);
34+
const { getDBTables, tables } = useGetDatabaseTables(database);
3535

3636
const handleClickOpen = () => {
3737
setOpen(true);
@@ -92,18 +92,16 @@ export default function DatabaseViewerDialog({
9292
defaultCollapseIcon={<Storage />}
9393
defaultExpandIcon={<Storage />}
9494
>
95-
<TreeItem nodeId="fake-table-1" label="Fake Table 1">
96-
<TreeItem nodeId="fake-table-1-ID" label="ID" />
97-
<TreeItem nodeId="fake-table-1-NAME" label="NAME" />
98-
<TreeItem nodeId="fake-table-1-DESCRIPTION" label="DESCRIPTION" />
99-
</TreeItem>
100-
<Divider />
101-
102-
<TreeItem nodeId="fake-table-2" label="Fake Table 2">
103-
<TreeItem nodeId="fake-table-2-ID" label="ID" />
104-
<TreeItem nodeId="fake-table-2-NAME" label="NAME" />
105-
<TreeItem nodeId="fake-table-2-DESCRIPTION" label="DESCRIPTION" />
106-
</TreeItem>
95+
{tables.map((table, key) => (
96+
<>
97+
<TreeItem nodeId={table} label={table}>
98+
<TreeItem nodeId="fake-table-2-ID" label="ID" />
99+
<TreeItem nodeId="fake-table-2-NAME" label="NAME" />
100+
<TreeItem nodeId="fake-table-2-DESCRIPTION" label="DESCRIPTION" />
101+
</TreeItem>
102+
{ key < tables.length -1 && <Divider />}
103+
</>
104+
))}
107105
</TreeView>
108106
</Box>
109107
</Grid>

ui/src/hooks/useGetDatabaseTables.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,28 @@ import { IDBConnection } from "../utils/types";
44

55
const ddClient = createDockerDesktopClient();
66

7+
interface Table {
8+
Schema: string;
9+
Name: string;
10+
}
11+
712
export const useGetDatabaseTables = (connection: IDBConnection) => {
813
const [tables, setTables] = useState<string[]>([]);
914
const [loading, setLoading] = useState<boolean>(false);
1015
const [error, setError] = useState<string | null>(null);
1116

1217
const getDBTables = async () => {
13-
console.log("hi!");
1418
setLoading(true);
1519
try {
16-
const result = await ddClient.extension.host?.cli.exec("usql", [
20+
const result = await ddClient.extension.host!.cli.exec("usql", [
1721
connection.connectionString,
1822
"-J", // json output
1923
"-q", // quiet, do not print connection string
2024
"-c", // execute the command[
2125
"'\\dt'",
2226
]);
23-
console.log(result);
24-
// setTables(data);
27+
const tables = result.parseJsonObject() as Table[];
28+
setTables(tables.map((table) => table.Name));
2529
} catch (err) {
2630
console.log(err);
2731
//setError(err?.message);

0 commit comments

Comments
 (0)