Undo, Redo, Clear, and Reset
import { ReactSketchCanvas, type ReactSketchCanvasRef, } from "react-sketch-canvas"; import { useRef, useState } from "react"; export default function App() { const canvasRef = useRef<ReactSketchCanvasRef>(null); const [eraseMode, setEraseMode] = useState(false); const handleEraserClick = () => { setEraseMode(true); canvasRef.current?.eraseMode(true); }; const handlePenClick = () => { setEraseMode(false); canvasRef.current?.eraseMode(false); }; const handleUndoClick = () => { canvasRef.current?.undo(); }; const handleRedoClick = () => { canvasRef.current?.redo(); }; const handleClearClick = () => { canvasRef.current?.clearCanvas(); }; const handleResetClick = () => { canvasRef.current?.resetCanvas(); }; return ( <div className="d-flex flex-column gap-2 p-2"> <h1>Tools</h1> <div className="d-flex gap-2 align-items-center "> <button type="button" className="btn btn-sm btn-outline-primary" disabled={!eraseMode} onClick={handlePenClick} > Pen </button> <button type="button" className="btn btn-sm btn-outline-primary" disabled={eraseMode} onClick={handleEraserClick} > Eraser </button> <div className="vr" /> <button type="button" className="btn btn-sm btn-outline-primary" onClick={handleUndoClick} > Undo </button> <button type="button" className="btn btn-sm btn-outline-primary" onClick={handleRedoClick} > Redo </button> <button type="button" className="btn btn-sm btn-outline-primary" onClick={handleClearClick} > Clear </button> <button type="button" className="btn btn-sm btn-outline-primary" onClick={handleResetClick} > Reset </button> </div> <h1>Canvas</h1> <ReactSketchCanvas ref={canvasRef} /> </div> ); }