Skip to content

Commit f709f9e

Browse files
hover thumbnail
1 parent 6386851 commit f709f9e

File tree

4 files changed

+74
-1
lines changed

4 files changed

+74
-1
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"@radix-ui/react-checkbox": "^1.1.1",
1414
"@radix-ui/react-dialog": "^1.1.1",
1515
"@radix-ui/react-dropdown-menu": "^2.1.1",
16+
"@radix-ui/react-hover-card": "^1.1.1",
1617
"@radix-ui/react-label": "^2.1.0",
1718
"@radix-ui/react-scroll-area": "^1.1.0",
1819
"@radix-ui/react-separator": "^1.1.0",

pnpm-lock.yaml

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

src/components/DynamicFeatureTable.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ import { Card, CardContent } from './ui/card'
88
import { Button } from './ui/button'
99
import { useCurrentCategory } from './CategoryProvider'
1010
import { convertFileSrc } from '@tauri-apps/api/core'
11+
import {
12+
HoverCard,
13+
HoverCardContent,
14+
HoverCardTrigger,
15+
} from "@/components/ui/hover-card"
1116

1217
type DataPoint = Record<string, Value>
1318

@@ -34,7 +39,14 @@ function renderCell(key: string, cell: Value) {
3439
if (key == '_imagePath' && isString(cell)) {
3540
const imgPath = convertFileSrc(cell);
3641
return (
37-
<img src={imgPath}/>
42+
<HoverCard>
43+
<HoverCardTrigger>
44+
<img src={imgPath}/>
45+
</HoverCardTrigger>
46+
<HoverCardContent className="w-1/2" side="right">
47+
<img src={imgPath}/>
48+
</HoverCardContent>
49+
</HoverCard>
3850
)
3951
}
4052
switch (typeof cell) {

src/components/ui/hover-card.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import * as React from "react"
2+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card"
3+
4+
import { cn } from "@/lib/utils"
5+
6+
const HoverCard = HoverCardPrimitive.Root
7+
8+
const HoverCardTrigger = HoverCardPrimitive.Trigger
9+
10+
const HoverCardContent = React.forwardRef<
11+
React.ElementRef<typeof HoverCardPrimitive.Content>,
12+
React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>
13+
>(({ className, align = "center", sideOffset = 4, ...props }, ref) => (
14+
<HoverCardPrimitive.Content
15+
ref={ref}
16+
align={align}
17+
sideOffset={sideOffset}
18+
className={cn(
19+
"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
20+
className
21+
)}
22+
{...props}
23+
/>
24+
))
25+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName
26+
27+
export { HoverCard, HoverCardTrigger, HoverCardContent }

0 commit comments

Comments
 (0)