import React from 'react' import { Magnet, Type } from 'lucide-react' import { PRIMARY_TOOLS, TRIM_TOOLS, ToolType } from './video-editor-utils' import { getShortcutLabel, type KeyboardLayout } from './video-editor-utils' import { Tooltip } from '@/components/ui/tooltip' interface ToolsPanelProps { activeTool: ToolType setActiveTool: (t: ToolType) => void lastTrimTool: ToolType setLastTrimTool: (t: ToolType) => void showTrimFlyout: boolean setShowTrimFlyout: (v: boolean) => void trimFlyoutOpenedRef: React.MutableRefObject trimLongPressRef: React.MutableRefObject | null> snapEnabled: boolean setSnapEnabled: (v: boolean) => void showEffectsBrowser: boolean setShowEffectsBrowser: (v: boolean) => void addTextClip: () => void kbLayout: KeyboardLayout } export function ToolsPanel({ activeTool, setActiveTool, lastTrimTool, setLastTrimTool, showTrimFlyout, setShowTrimFlyout, trimFlyoutOpenedRef, trimLongPressRef, snapEnabled, setSnapEnabled, showEffectsBrowser: _showEffectsBrowser, setShowEffectsBrowser: _setShowEffectsBrowser, // EFFECTS HIDDEN addTextClip, kbLayout, }: ToolsPanelProps) { return (
{PRIMARY_TOOLS.map(tool => ( { const s = getShortcutLabel(kbLayout, tool.actionId); return <>{tool.label}{s && ({s})}; })()} > ))} {/* Trim tools group button */} {(() => { const trimToolIds = new Set(TRIM_TOOLS.map(t => t.id)) const isTrimActive = trimToolIds.has(activeTool) const currentTrimTool = TRIM_TOOLS.find(t => t.id === (isTrimActive ? activeTool : lastTrimTool)) || TRIM_TOOLS[0] return (
{ const s = getShortcutLabel(kbLayout, currentTrimTool.actionId); return <>{currentTrimTool.label}{s ? ` (${s}) — ` : ' — '}right-click or hold for more; })()} > {showTrimFlyout && (() => { const btnEl = document.querySelector('[data-trim-group-btn]') const rect = btnEl?.getBoundingClientRect() return ( <>
setShowTrimFlyout(false)} onContextMenu={(e) => { e.preventDefault(); setShowTrimFlyout(false) }} />
{TRIM_TOOLS.map(t => ( ))}
) })()}
) })()}
{/* EFFECTS HIDDEN - FX button hidden because effects are not applied during export
EFFECTS HIDDEN */}
) }