Skip to content

Commit 8fb7be5

Browse files
committed
Merge branch 'feature/add-main-pages' into feature/chain-switch
2 parents 664128a + 960cf5d commit 8fb7be5

36 files changed

+1738
-528
lines changed

package-lock.json

Lines changed: 129 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"@radix-ui/react-dialog": "^1.1.7",
2525
"@radix-ui/react-label": "^2.1.3",
2626
"@radix-ui/react-select": "^2.2.2",
27-
"@radix-ui/react-slot": "^1.2.0",
27+
"@radix-ui/react-slot": "^1.2.2",
2828
"@radix-ui/react-tabs": "^1.1.4",
2929
"@radix-ui/react-tooltip": "^1.2.0",
3030
"@reown/appkit": "^1.6.9",
@@ -34,6 +34,8 @@
3434
"@tanstack/react-query": "^5.74.4",
3535
"@tanstack/react-router": "^1.116.0",
3636
"@tanstack/react-router-devtools": "^1.116.0",
37+
"@tanstack/react-table": "^8.21.3",
38+
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
3739
"class-variance-authority": "^0.7.1",
3840
"clsx": "^2.1.1",
3941
"graphql": "^16.10.0",

src/components/CopyButton.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,11 @@ const CopyButton = ({
3939
<Tooltip open={showTooltip}>
4040
<TooltipTrigger asChild>
4141
<button
42-
onClick={handleCopy}
42+
onClick={(e) => {
43+
e.stopPropagation();
44+
e.preventDefault();
45+
handleCopy();
46+
}}
4347
onMouseEnter={handleMouseEnter}
4448
onMouseLeave={handleMouseLeave}
4549
className="hover:before:bg-grey-700 active:before:bg-grey-600 relative z-0 -mx-2 -my-1 flex w-fit items-center gap-1 px-2 py-1 transition-colors before:absolute before:inset-0 before:-z-10 before:rounded-lg before:duration-150 active:before:scale-x-[0.98] active:before:scale-y-[0.94]"

src/components/DataTable.tsx

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import { Link } from '@tanstack/react-router';
2+
import {
3+
ColumnDef,
4+
flexRender,
5+
getCoreRowModel,
6+
useReactTable,
7+
} from '@tanstack/react-table';
8+
import {
9+
Table,
10+
TableBody,
11+
TableCell,
12+
TableHead,
13+
TableHeader,
14+
TableRow,
15+
} from '@/components/ui/table';
16+
17+
interface DataTableProps<TData, TValue> {
18+
columns: ColumnDef<TData, TValue>[];
19+
data: TData[];
20+
tableLength?: number;
21+
isLoading?: boolean;
22+
}
23+
24+
export function DataTable<TData extends { destination: string }, TValue>({
25+
columns,
26+
data,
27+
tableLength = 10,
28+
isLoading,
29+
}: DataTableProps<TData, TValue>) {
30+
const table = useReactTable({
31+
data,
32+
columns,
33+
getCoreRowModel: getCoreRowModel(),
34+
});
35+
36+
return (
37+
<Table>
38+
<TableHeader>
39+
{table.getHeaderGroups().map((headerGroup) => (
40+
<TableRow key={headerGroup.id}>
41+
{headerGroup.headers.map((header) => {
42+
return (
43+
<TableHead key={header.id}>
44+
{header.isPlaceholder
45+
? null
46+
: flexRender(
47+
header.column.columnDef.header,
48+
header.getContext()
49+
)}
50+
</TableHead>
51+
);
52+
})}
53+
</TableRow>
54+
))}
55+
</TableHeader>
56+
<TableBody>
57+
{table.getRowModel().rows.map((row) => (
58+
<TableRow key={row.id} data-state={row.getIsSelected() && 'selected'}>
59+
{row.getVisibleCells().map((cell) => (
60+
<TableCell key={cell.id} className="p-0">
61+
<Link
62+
className="block px-5 py-6"
63+
to={cell.row.original.destination}
64+
>
65+
{flexRender(cell.column.columnDef.cell, cell.getContext())}
66+
</Link>
67+
</TableCell>
68+
))}
69+
</TableRow>
70+
))}
71+
{data.length === 0 && !isLoading && (
72+
<TableRow>
73+
<TableCell colSpan={columns.length} className="text-center">
74+
<span>No results.</span>
75+
</TableCell>
76+
</TableRow>
77+
)}
78+
{Array.from({
79+
length:
80+
tableLength -
81+
data.length -
82+
(data.length === 0 && !isLoading ? 1 : 0),
83+
}).map((_, index) => (
84+
<TableRow key={`empty-${index}`}>
85+
{columns.map((_, colIndex) => (
86+
<TableCell key={colIndex} className="h-12">
87+
&nbsp;
88+
</TableCell>
89+
))}
90+
</TableRow>
91+
))}
92+
</TableBody>
93+
</Table>
94+
);
95+
}

0 commit comments

Comments
 (0)