@@ -6,10 +6,11 @@ import {
6
6
TableProperties ,
7
7
Table as TableIcon ,
8
8
} from "lucide-react" ;
9
+ import { z } from "zod" ;
9
10
import DataGrid from "react-data-grid" ;
10
11
import { CodeBlock } from "react-code-blocks" ;
11
12
import { useInfiniteQuery , useQuery } from "@tanstack/react-query" ;
12
- import { createFileRoute } from "@tanstack/react-router" ;
13
+ import { Link , createFileRoute } from "@tanstack/react-router" ;
13
14
14
15
import { fetchTable , fetchTables , fetchTableData } from "@/api" ;
15
16
@@ -21,17 +22,25 @@ export const Route = createFileRoute("/tables")({
21
22
component : Tables ,
22
23
loader : ( ) => fetchTables ( ) ,
23
24
pendingComponent : TablesSkeleton ,
25
+ validateSearch : z . object ( { table : z . string ( ) . optional ( ) } ) ,
24
26
} ) ;
25
27
26
28
function Tables ( ) {
27
29
const data = Route . useLoaderData ( ) ;
30
+ const { table } = Route . useSearch ( ) ;
31
+
32
+ const tab = table
33
+ ? data . tables . findIndex ( ( { name } ) => name === table ) . toString ( )
34
+ : "0" ;
28
35
29
36
return (
30
- < Tabs defaultValue = "0" >
37
+ < Tabs defaultValue = { tab } >
31
38
< TabsList >
32
39
{ data . tables . map ( ( n , i ) => (
33
40
< TabsTrigger key = { i } value = { i . toString ( ) } >
34
- { n . name } ({ n . count . toLocaleString ( ) } )
41
+ < Link search = { { table : n . name } } >
42
+ { n . name } ({ n . count . toLocaleString ( ) } )
43
+ </ Link >
35
44
</ TabsTrigger >
36
45
) ) }
37
46
</ TabsList >
0 commit comments