"use client"; import { useReviewStore } from "@/hooks/use-review-player"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import type { AnnotationTool } from "@/types"; import { Pencil, ArrowUpRight, Square, Circle, Minus, Plus, } from "lucide-react"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; const TOOLS: { tool: AnnotationTool; icon: React.ElementType; label: string }[] = [ { tool: "freehand", icon: Pencil, label: "Freehand" }, { tool: "arrow", icon: ArrowUpRight, label: "Arrow" }, { tool: "rectangle", icon: Square, label: "Rectangle" }, { tool: "circle", icon: Circle, label: "Circle" }, ]; const COLORS = [ { value: "#ef4444", label: "Red" }, { value: "#f59e0b", label: "Amber" }, { value: "#22c55e", label: "Green" }, { value: "#3b82f6", label: "Blue" }, { value: "#a855f7", label: "Purple" }, { value: "#ffffff", label: "White" }, { value: "#000000", label: "Black" }, ]; export function AnnotationTools() { const { isAnnotating, selectedTool, selectedColor, strokeWidth, setSelectedTool, setSelectedColor, setStrokeWidth, setAnnotating, } = useReviewStore(); if (!isAnnotating) return null; return (
{/* Tool selector */}
{TOOLS.map(({ tool, icon: Icon, label }) => ( {label} ))}
{/* Color picker */}
{COLORS.map((c) => (
{/* Stroke width */}
Thinner
Thicker {strokeWidth}
); }