import { cn } from "@/lib/utils"
import { useEditModeContext } from "../../hooks/use-edit-mode"
import { EDIT_MODE_CONFIGS, EDIT_MODES } from "../../types/edit-modes"
interface EditModeOverlayProps {
className?: string
}
export function EditModeOverlay({ className }: EditModeOverlayProps) {
const { editMode } = useEditModeContext()
const config = EDIT_MODE_CONFIGS[editMode]
// Don't show overlay for select mode
if (editMode === EDIT_MODES.SELECT) return null
return (
{/* Icon would go here - using text for now */}
{config.hotkey}
{config.name} Mode
{config.description}
Press ESC to exit
)
}
// Cursor overlay for custom cursors
interface EditCursorOverlayProps {
mousePosition: { x: number; y: number } | null
isActive: boolean
}
export function EditCursorOverlay({ mousePosition, isActive }: EditCursorOverlayProps) {
const { editMode } = useEditModeContext()
if (!isActive || !mousePosition || editMode === EDIT_MODES.SELECT) {
return null
}
const getCursorIcon = () => {
switch (editMode) {
case EDIT_MODES.TRIM:
return
case EDIT_MODES.RIPPLE:
return
case EDIT_MODES.ROLL:
return
case EDIT_MODES.SLIP:
return
case EDIT_MODES.SLIDE:
return
case EDIT_MODES.SPLIT:
return
case EDIT_MODES.RATE:
return
default:
return null
}
}
const cursor = getCursorIcon()
if (!cursor) return null
return (
{cursor}
)
}
// Custom cursor components
function TrimCursor() {
return (
)
}
function RippleCursor() {
return (
)
}
function RollCursor() {
return (
)
}
function SlipCursor() {
return (
)
}
function SlideCursor() {
return (
)
}
function SplitCursor() {
return (
)
}
function RateCursor() {
return (
)
}