diff options
| author | gantiro <gantiro396@gmail.com> | 2025-07-16 20:53:00 +0700 |
|---|---|---|
| committer | gantiro <gantiro396@gmail.com> | 2025-07-16 20:53:00 +0700 |
| commit | 955f6331f258143daa62cb6e004c6df089c55c64 (patch) | |
| tree | f1e4ed03cbfb35408ae5282dfe35371e535e5eb8 /apps/web/src/components/ui | |
| parent | 2974fd89a942f4e3173642b165f228e2af604ae7 (diff) | |
| parent | 3371a6889634f326063351295faca9a56c566706 (diff) | |
| download | opencut-955f6331f258143daa62cb6e004c6df089c55c64.tar.gz | |
Merge branch 'main' into feature/optimize-timeline-ruler
Diffstat (limited to 'apps/web/src/components/ui')
| -rw-r--r-- | apps/web/src/components/ui/draggable-item.tsx | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/apps/web/src/components/ui/draggable-item.tsx b/apps/web/src/components/ui/draggable-item.tsx index c1f81e16..b15e8df8 100644 --- a/apps/web/src/components/ui/draggable-item.tsx +++ b/apps/web/src/components/ui/draggable-item.tsx @@ -2,6 +2,11 @@ import { AspectRatio } from "@/components/ui/aspect-ratio"; import { Button } from "@/components/ui/button"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/components/ui/tooltip"; import { ReactNode, useState, useRef, useEffect } from "react"; import { createPortal } from "react-dom"; import { Plus } from "lucide-react"; @@ -139,7 +144,12 @@ export function DraggableMediaItem({ <div className="w-full h-full [&_img]:w-full [&_img]:h-full [&_img]:object-cover [&_img]:rounded-none"> {preview} </div> - {showPlusOnDrag && <PlusButton onClick={handleAddToTimeline} tooltipText="Add to timeline or drag to position" />} + {showPlusOnDrag && ( + <PlusButton + onClick={handleAddToTimeline} + tooltipText="Add to timeline or drag to position" + /> + )} </AspectRatio> </div> </div>, @@ -149,8 +159,16 @@ export function DraggableMediaItem({ ); } -function PlusButton({ className, onClick }: { className?: string; onClick?: () => void }) { - return ( +function PlusButton({ + className, + onClick, + tooltipText, +}: { + className?: string; + onClick?: () => void; + tooltipText?: string; +}) { + const button = ( <Button size="icon" className={cn("absolute bottom-2 right-2 size-4", className)} @@ -163,4 +181,17 @@ function PlusButton({ className, onClick }: { className?: string; onClick?: () = <Plus className="!size-3" /> </Button> ); + + if (tooltipText) { + return ( + <Tooltip> + <TooltipTrigger asChild>{button}</TooltipTrigger> + <TooltipContent> + <p>{tooltipText}</p> + </TooltipContent> + </Tooltip> + ); + } + + return button; } |
