| import { useState } from 'react'; | |
| import { DEFAULT_PEN_COLOR, DEFAULT_PEN_SIZE } from '../constants'; | |
| export interface DrawingToolsHook { | |
| penColor: string; | |
| setPenColor: React.Dispatch<React.SetStateAction<string>>; | |
| penSize: number; | |
| setPenSize: React.Dispatch<React.SetStateAction<number>>; | |
| isEraserMode: boolean; | |
| setIsEraserMode: React.Dispatch<React.SetStateAction<boolean>>; | |
| toggleEraserMode: () => void; | |
| effectivePenColor: string; | |
| } | |
| export const useDrawingTools = (): DrawingToolsHook => { | |
| const [penColor, setPenColor] = useState<string>(DEFAULT_PEN_COLOR); | |
| const [penSize, setPenSize] = useState<number>(DEFAULT_PEN_SIZE); | |
| const [isEraserMode, setIsEraserMode] = useState<boolean>(false); | |
| const toggleEraserMode = () => setIsEraserMode(prev => !prev); | |
| const effectivePenColor = isEraserMode ? '#FFFFFF' : penColor; // Eraser uses white to clear | |
| return { | |
| penColor, | |
| setPenColor, | |
| penSize, | |
| setPenSize, | |
| isEraserMode, | |
| setIsEraserMode, | |
| toggleEraserMode, | |
| effectivePenColor, | |
| }; | |
| }; | |