diff --git a/src/components/DrawingShapes.jsx b/src/components/DrawingShapes.jsx
index 182b943..91e1a5c 100644
--- a/src/components/DrawingShapes.jsx
+++ b/src/components/DrawingShapes.jsx
@@ -4,6 +4,7 @@ import circleImg from "../assets/images/circle.svg";
import triangleImg from "../assets/images/triangle.svg";
import lineImg from "../assets/images/line.svg";
import { GiPencilBrush } from "react-icons/gi";
+
const DrawingShapes = ({
brushWidth,
selectedColor,
@@ -15,22 +16,22 @@ const DrawingShapes = ({
const [isDrawing, setIsDrawing] = useState(false);
const [prevMouseX, setPrevMouseX] = useState(0);
const [prevMouseY, setPrevMouseY] = useState(0);
-
const [snapshot, setSnapshot] = useState(null);
const [isDropdownOpen, setIsDropdownOpen] = useState(false);
+ const [currentToolName, setCurrentToolName] = useState();
const shapeDropRef = useRef(null);
- const handleoutsideClick = (event) => {
+ const handleOutsideClick = (event) => {
if (shapeDropRef.current && !shapeDropRef.current.contains(event.target)) {
setIsDropdownOpen(false);
}
};
useEffect(() => {
- document.addEventListener("mousedown", handleoutsideClick);
+ document.addEventListener("mousedown", handleOutsideClick);
return () => {
- document.removeEventListener("mousedown", handleoutsideClick);
+ document.removeEventListener("mousedown", handleOutsideClick);
};
}, [isDropdownOpen]);
@@ -56,7 +57,8 @@ const DrawingShapes = ({
ctx.putImageData(snapshot, 0, 0);
ctx.beginPath();
const radius = Math.sqrt(
- Math.pow(prevMouseX - e.offsetX, 2) + Math.pow(prevMouseY - e.offsetY, 2)
+ Math.pow(prevMouseX - e.offsetX, 2) +
+ Math.pow(prevMouseY - e.offsetY, 2)
);
ctx.arc(prevMouseX, prevMouseY, radius, 0, 2 * Math.PI);
fillColor ? ctx.fill() : ctx.stroke();
@@ -95,7 +97,15 @@ const DrawingShapes = ({
ctx.translate(prevMouseX, prevMouseY);
ctx.rotate(angle);
ctx.beginPath();
- ctx.rect(0, -brushWidth / 2, Math.sqrt(Math.pow(e.offsetX - prevMouseX, 2) + Math.pow(e.offsetY - prevMouseY, 2)), brushWidth);
+ ctx.rect(
+ 0,
+ -brushWidth / 2,
+ Math.sqrt(
+ Math.pow(e.offsetX - prevMouseX, 2) +
+ Math.pow(e.offsetY - prevMouseY, 2)
+ ),
+ brushWidth
+ );
ctx.fillStyle = selectedColor;
ctx.fill();
ctx.restore();
@@ -171,7 +181,17 @@ const DrawingShapes = ({
canvas.removeEventListener("mouseup", stopDrawing);
canvas.removeEventListener("mouseout", stopDrawing);
};
- }, [brushWidth, fillColor, selectedTool, selectedColor, snapshot, canvasRef, isDrawing, prevMouseX, prevMouseY]);
+ }, [
+ brushWidth,
+ fillColor,
+ selectedTool,
+ selectedColor,
+ snapshot,
+ canvasRef,
+ isDrawing,
+ prevMouseX,
+ prevMouseY,
+ ]);
function toggleDropDown() {
setIsDropdownOpen(!isDropdownOpen);
@@ -201,50 +221,56 @@ const DrawingShapes = ({
const [lower, setLower] = useState(false);
- const handleBrushSelect = (brush) => {
+ const handleBrushSelect = (brush, brushName) => {
setSelectedTool(brush);
+ setCurrentToolName(brushName);
setIsDropdownOpen(false); // Close dropdown after selection
};
return (
<>
-
+
- {lower && (
-
-
handleBrushSelect("rounded")}
- className="hover:bg-gray-400 p-2 cursor-pointer"
- >
-
Rounded Brush
-
-
handleBrushSelect("flat")}
- className="hover:bg-gray-400 p-2 cursor-pointer"
- >
-
Flat Brush
-
-
handleBrushSelect("watercolor")}
- className="hover:bg-gray-400 p-2 cursor-pointer"
- >
-
Watercolor Brush
-
-
handleBrushSelect("blur")}
- className="hover:bg-gray-400 p-2 cursor-pointer"
- >
-
Blur Brush
-
-
- )}
+
Brush
+ {lower && (
+
+
handleBrushSelect("rounded", "Rounded Brush")}
+ className="hover:bg-gray-400 p-2 cursor-pointer relative group tooltip"
+ >
+
Rounded Brush
+ Rounded Brush
+
+
handleBrushSelect("flat", "Flat Brush")}
+ className="hover:bg-gray-400 p-2 cursor-pointer relative group tooltip"
+ >
+
Flat Brush
+ Flat Brush
+
+
handleBrushSelect("watercolor", "Watercolor Brush")}
+ className="hover:bg-gray-400 p-2 cursor-pointer relative group tooltip"
+ >
+
Watercolor Brush
+ Watercolor Brush
+
+
handleBrushSelect("blur", "Blur Brush")}
+ className="hover:bg-gray-400 p-2 cursor-pointer relative group tooltip"
+ >
+
Blur Brush
+ Blur Brush
+
+
+ )}
+
+ {currentToolName}
+
{isDropdownOpen ? (
<>
- {
- setSelectedTool("rectangle");
- setIsDropdownOpen(false);
+ handleBrushSelect("rectangle", "Rectangle");
}}
>
+ Rectangle
- {
- setSelectedTool("circle");
- setIsDropdownOpen(false);
+ handleBrushSelect("circle", "Circle");
}}
>
+ Circle
- {
- setSelectedTool("triangle");
- setIsDropdownOpen(false);
+ handleBrushSelect("triangle", "Triangle");
}}
>
+ Triangle
- {
- setSelectedTool("line");
- setIsDropdownOpen(false);
+ handleBrushSelect("line", "Line");
}}
>
+ Line
>
) : (
diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx
index 017fb37..2dcf563 100644
--- a/src/components/Footer.jsx
+++ b/src/components/Footer.jsx
@@ -1,50 +1,37 @@
import React from "react";
import {
- AiOutlineInfoCircle,
- AiOutlineMessage,
- AiOutlineTeam,
-} from "react-icons/ai";
-import {
- FaNewspaper,
FaLinkedin,
FaTwitter,
+ FaGithub,
+ FaNewspaper,
FaInstagram,
FaYoutube,
- FaGithub,
} from "react-icons/fa";
+import {
+ AiOutlineInfoCircle,
+ AiOutlineMessage,
+ AiOutlineTeam,
+} from "react-icons/ai";
const Footer = () => {
return (
-