feat: Enhance annotation canvas toolbar responsiveness, group controls

This commit is contained in:
Yusuf İpek
2026-02-21 20:27:19 +03:00
parent d731c9434a
commit fc047841cf
+10 -4
View File
@@ -207,8 +207,9 @@ export const AnnotationCanvas = forwardRef<AnnotationCanvasHandle, AnnotationCan
/> />
{/* Toolbar */} {/* Toolbar */}
<div className="absolute top-3 left-1/2 -translate-x-1/2 flex items-center gap-2 bg-background/90 backdrop-blur-sm rounded-lg px-3 py-2 shadow-lg border z-30"> <div className="absolute top-3 left-1/2 -translate-x-1/2 flex items-center justify-center flex-wrap gap-x-2 gap-y-2 w-[calc(100%-24px)] max-w-fit bg-background/90 backdrop-blur-sm rounded-lg px-3 py-2 shadow-lg border z-30">
{/* Colors */} {/* Colors */}
<div className="flex items-center justify-center flex-wrap gap-1.5">
{COLORS.map(c => ( {COLORS.map(c => (
<button <button
key={c} key={c}
@@ -221,10 +222,12 @@ export const AnnotationCanvas = forwardRef<AnnotationCanvasHandle, AnnotationCan
onClick={() => setColor(c)} onClick={() => setColor(c)}
/> />
))} ))}
</div>
<div className="w-px h-6 bg-border mx-1" /> <div className="hidden sm:block w-px h-6 bg-border mx-1" />
{/* Brush size */} {/* Brush size */}
<div className="flex items-center gap-1">
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={() => setWidth(w => Math.max(MIN_WIDTH, w - 1))}> <Button variant="ghost" size="icon" className="h-7 w-7" onClick={() => setWidth(w => Math.max(MIN_WIDTH, w - 1))}>
<Minus className="h-3 w-3" /> <Minus className="h-3 w-3" />
</Button> </Button>
@@ -232,17 +235,20 @@ export const AnnotationCanvas = forwardRef<AnnotationCanvasHandle, AnnotationCan
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={() => setWidth(w => Math.min(MAX_WIDTH, w + 1))}> <Button variant="ghost" size="icon" className="h-7 w-7" onClick={() => setWidth(w => Math.min(MAX_WIDTH, w + 1))}>
<Plus className="h-3 w-3" /> <Plus className="h-3 w-3" />
</Button> </Button>
</div>
<div className="w-px h-6 bg-border mx-1" /> <div className="hidden sm:block w-px h-6 bg-border mx-1" />
{/* Actions */} {/* Actions */}
<div className="flex items-center gap-1">
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={handleUndo} disabled={strokes.length === 0} title="Undo"> <Button variant="ghost" size="icon" className="h-7 w-7" onClick={handleUndo} disabled={strokes.length === 0} title="Undo">
<Undo2 className="h-4 w-4" /> <Undo2 className="h-4 w-4" />
</Button> </Button>
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={handleClear} disabled={strokes.length === 0} title="Clear all"> <Button variant="ghost" size="icon" className="h-7 w-7 text-destructive hover:bg-destructive/10" onClick={handleClear} disabled={strokes.length === 0} title="Clear all">
<Trash2 className="h-4 w-4" /> <Trash2 className="h-4 w-4" />
</Button> </Button>
</div> </div>
</div> </div>
</div>
); );
}); });