import React, { useRef, useState, useCallback, useEffect } from 'react'; import { Upload, Eraser, Undo2, Download, RotateCcw, Wand2 } from 'lucide-react'; export default function WatermarkRemover() { const imgCanvasRef = useRef(null); const maskCanvasRef = useRef(null); const wrapRef = useRef(null); const fileInputRef = useRef(null); const [hasImage, setHasImage] = useState(false); const [brushSize, setBrushSize] = useState(28); const [isDrawing, setIsDrawing] = useState(false); const [isProcessing, setIsProcessing] = useState(false); const [dims, setDims] = useState({ w: 0, h: 0 }); const [history, setHistory] = useState([]); const [hint, setHint] = useState('upload'); const MAX_DIM = 1400; const loadImage = useCallback((file) => { const url = URL.createObjectURL(file); const img = new Image(); img.onload = () => { let w = img.width; let h = img.height; if (w > MAX_DIM || h > MAX_DIM) {...