From 058c0617541fab5d473b3327d194d94a5af19da4 Mon Sep 17 00:00:00 2001 From: andres Date: Thu, 11 Jul 2024 12:59:13 +0200 Subject: [PATCH] add scroll area to data table --- frontend/bun.lockb | Bin 137358 -> 138157 bytes frontend/package.json | 1 + .../components/db-table-view/data-table.tsx | 7 +-- frontend/src/components/ui/index.ts | 1 + frontend/src/components/ui/scroll-area.tsx | 47 ++++++++++++++++++ 5 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components/ui/scroll-area.tsx diff --git a/frontend/bun.lockb b/frontend/bun.lockb index f6465b626c8d80d9579987219ac5d682390cb3ff..c031b9245b4934b0ff82f804d0a3089665a4d4ec 100644 GIT binary patch delta 21555 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%0A(jaX!c+_gb-wxCrON{5sA@c*cjiy_S=dqDZNHU$ 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 ClXsN> delta 21557 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 Y_TD^qC7Z}LN3UkPT5Rs}9qViPZ(NUFbN~PV diff --git a/frontend/package.json b/frontend/package.json index 03d1f77..38ae999 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,6 +17,7 @@ "@radix-ui/react-dialog": "^1.1.1", "@radix-ui/react-dropdown-menu": "^2.1.1", "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-scroll-area": "^1.1.0", "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.0", diff --git a/frontend/src/components/db-table-view/data-table.tsx b/frontend/src/components/db-table-view/data-table.tsx index 0f14415..5afc190 100644 --- a/frontend/src/components/db-table-view/data-table.tsx +++ b/frontend/src/components/db-table-view/data-table.tsx @@ -5,6 +5,7 @@ import { DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger, + ScrollArea, Table, TableBody, TableCell, @@ -159,7 +160,7 @@ export const DataTable = ({ }); return ( -
+

{tableName} @@ -193,7 +194,7 @@ export const DataTable = ({

-
+
-
+
); diff --git a/frontend/src/components/ui/index.ts b/frontend/src/components/ui/index.ts index 41f0a57..4b3f464 100644 --- a/frontend/src/components/ui/index.ts +++ b/frontend/src/components/ui/index.ts @@ -8,6 +8,7 @@ export * from "./label"; export * from "./mode-toggle"; export * from "./select"; export * from "./sonner"; +export * from "./scroll-area"; export * from "./sql-data-table"; export * from "./sql-data-table-cell"; export * from "./switch"; diff --git a/frontend/src/components/ui/scroll-area.tsx b/frontend/src/components/ui/scroll-area.tsx new file mode 100644 index 0000000..760525b --- /dev/null +++ b/frontend/src/components/ui/scroll-area.tsx @@ -0,0 +1,47 @@ +import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"; +import * as React from "react"; + +import { cn } from "@/lib/utils"; + +const ScrollArea = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + {children} + + + + + +)); +ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName; + +const ScrollBar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, orientation = "vertical", ...props }, ref) => ( + + + +)); +ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName; + +export { ScrollArea, ScrollBar };