refactor: remove element menu from timeline element component
This commit is contained in:
@ -298,70 +298,6 @@ export function TimelineElement({
|
|||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="absolute top-1 right-1">
|
|
||||||
<DropdownMenu
|
|
||||||
open={elementMenuOpen}
|
|
||||||
onOpenChange={setElementMenuOpen}
|
|
||||||
>
|
|
||||||
<DropdownMenuTrigger asChild>
|
|
||||||
<Button
|
|
||||||
variant="outline"
|
|
||||||
size="sm"
|
|
||||||
className="h-6 w-6 p-0 opacity-0 group-hover:opacity-100 transition-opacity bg-background/80 hover:bg-background"
|
|
||||||
onClick={(e) => {
|
|
||||||
e.stopPropagation();
|
|
||||||
setElementMenuOpen(true);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<MoreVertical className="h-3 w-3" />
|
|
||||||
</Button>
|
|
||||||
</DropdownMenuTrigger>
|
|
||||||
<DropdownMenuContent align="end" className="w-56">
|
|
||||||
{/* Split operations - only available when playhead is within element */}
|
|
||||||
<DropdownMenuSub>
|
|
||||||
<DropdownMenuSubTrigger disabled={!canSplitAtPlayhead()}>
|
|
||||||
<Scissors className="mr-2 h-4 w-4" />
|
|
||||||
Split
|
|
||||||
</DropdownMenuSubTrigger>
|
|
||||||
<DropdownMenuSubContent>
|
|
||||||
<DropdownMenuItem onClick={handleSplitElement}>
|
|
||||||
<SplitSquareHorizontal className="mr-2 h-4 w-4" />
|
|
||||||
Split at Playhead
|
|
||||||
</DropdownMenuItem>
|
|
||||||
<DropdownMenuItem onClick={handleSplitAndKeepLeft}>
|
|
||||||
<ChevronLeft className="mr-2 h-4 w-4" />
|
|
||||||
Split and Keep Left
|
|
||||||
</DropdownMenuItem>
|
|
||||||
<DropdownMenuItem onClick={handleSplitAndKeepRight}>
|
|
||||||
<ChevronRight className="mr-2 h-4 w-4" />
|
|
||||||
Split and Keep Right
|
|
||||||
</DropdownMenuItem>
|
|
||||||
</DropdownMenuSubContent>
|
|
||||||
</DropdownMenuSub>
|
|
||||||
|
|
||||||
{/* Audio separation - only available for video elements */}
|
|
||||||
{canSeparateAudio() && (
|
|
||||||
<>
|
|
||||||
<DropdownMenuSeparator />
|
|
||||||
<DropdownMenuItem onClick={handleSeparateAudio}>
|
|
||||||
<Music className="mr-2 h-4 w-4" />
|
|
||||||
Separate Audio
|
|
||||||
</DropdownMenuItem>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<DropdownMenuSeparator />
|
|
||||||
<DropdownMenuItem
|
|
||||||
onClick={handleDeleteElement}
|
|
||||||
className="text-destructive"
|
|
||||||
>
|
|
||||||
<Trash2 className="mr-2 h-4 w-4" />
|
|
||||||
Delete {element.type === "text" ? "text" : "clip"}
|
|
||||||
</DropdownMenuItem>
|
|
||||||
</DropdownMenuContent>
|
|
||||||
</DropdownMenu>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user