From 351df69072de5927ffeb018415566b35a49d928f Mon Sep 17 00:00:00 2001 From: bflatastic Date: Mon, 7 Jul 2025 15:49:27 +0700 Subject: [PATCH] brush icon and active mode --- .../PageDraw/components/ui/SideToolbar.tsx | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/frontend/apps/editor3d/app/src/pages/PageDraw/components/ui/SideToolbar.tsx b/frontend/apps/editor3d/app/src/pages/PageDraw/components/ui/SideToolbar.tsx index 5da0ea0887..80fd1e0ba4 100644 --- a/frontend/apps/editor3d/app/src/pages/PageDraw/components/ui/SideToolbar.tsx +++ b/frontend/apps/editor3d/app/src/pages/PageDraw/components/ui/SideToolbar.tsx @@ -3,18 +3,15 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faMousePointer, faShapes, - faEraser, faTrash, faEyeDropper, faImage, faSquare, faCircle, faPlay, - faSparkles, - faFileImport, - faFileExport, faUndo, faRedo, + faPaintBrush, } from "@fortawesome/pro-solid-svg-icons"; import "../../App.css"; import { HsvaColorPicker, HsvaColor } from "react-colorful"; @@ -43,9 +40,7 @@ export interface SideToolbarProps { onSelect: () => void; onAddShape: (shape: "rectangle" | "circle" | "triangle") => void; onPaintBrush: (hex: string, size: number, opacity: number) => void; - onEraser: (size: number) => void; onCanvasBackground: (hex: string) => void; - onGenerateImage: () => void; onUploadImage: () => void; onDelete: () => void; activeToolId: string; @@ -56,9 +51,7 @@ const SideToolbar: React.FC = ({ onSelect, onAddShape, onPaintBrush, - onEraser, onCanvasBackground, - onGenerateImage, onUploadImage, onDelete, activeToolId, @@ -86,7 +79,7 @@ const SideToolbar: React.FC = ({ const sendPaint = useDebounced< (hex: string, size: number, opacity: number) => void, [string, number, number] - >(onPaintBrush, 75, 1); + >(onPaintBrush, 75); const sendBg = useDebounced<(hex: string) => void, [string]>( onCanvasBackground, @@ -202,16 +195,12 @@ const SideToolbar: React.FC = ({ }, { id: "separator-2", type: "separator" }, { - id: "paint", + id: "draw", label: "Brush", - icon: ( - - ), + icon: null, onClick: () => { sendPaint(hsvaToHex(brushHsva), brushSize, brushHsva.a); + store.setActiveTool("draw"); }, popout: BrushPopout, }, @@ -323,6 +312,19 @@ const SideToolbar: React.FC = ({ ? "bg-primary/30 border-2 !border-primary text-white" : "hover:bg-white/10 text-white"; + // Dynamic icon for brush/draw tool + let displayIcon = icon; + if (id === "draw") { + displayIcon = active ? ( + + ) : ( + + ); + } + return (
= ({ }} className={`${baseBtn} ${btnStyle}`} > - {icon} + {displayIcon} ) : ( )}