1+ import { ChromePicker } from "react-color" ;
2+ import { useState } from "react" ;
3+
14import '../styles/SettingsModal.css'
25
3- export default function SettingsModal ( { isOpen, onClose, settings, onSave } ) {
6+ export default function SettingsModal ( { isOpen, onClose, settings, onSave } ) {
7+ const [ showColorPicker , setShowColorPicker ] = useState ( false ) ;
8+
49 if ( ! isOpen ) return null
510
611 const toggleSetting = ( key ) => {
712 const newSettings = { ...settings , [ key ] : ! settings [ key ] }
813 onSave ( newSettings )
914 }
1015
16+ const handleColorChange = ( newColor ) => {
17+ const updatedSettings = { ...settings , cursorColor : newColor . hex }
18+ onSave ( updatedSettings )
19+ }
20+
21+ console . log ( settings . cursorColor )
22+
1123 return (
1224 < div className = "modal-overlay" onClick = { onClose } >
1325 < div className = "modal-content" onClick = { ( e ) => e . stopPropagation ( ) } >
@@ -33,6 +45,45 @@ export default function SettingsModal({ isOpen, onClose, settings, onSave }) {
3345 </ div >
3446 </ label >
3547
48+ < label className = "setting-row" >
49+ < span > Mostrar cursor</ span >
50+ < div
51+ className = { `toggle-switch ${ settings . cursor ? "on" : "off" } ` }
52+ onClick = { ( ) => toggleSetting ( "cursor" ) }
53+ >
54+ < div className = "toggle-thumb" />
55+ </ div >
56+ </ label >
57+
58+ {
59+ settings . cursor &&
60+ (
61+ < div className = "setting-row" >
62+ < span > Color cursor</ span >
63+ < span className = "reset"
64+ onClick = { ( ) => handleColorChange ( { hex : "#007acc" } ) } > Reset</ span >
65+ < div
66+ className = "color-square"
67+ style = { { backgroundColor : settings . cursorColor || "#000000" } }
68+ onClick = { ( ) => setShowColorPicker ( ! showColorPicker ) }
69+ />
70+
71+ { showColorPicker && (
72+ < div className = "popover" >
73+ < div className = "cover" onClick = { ( ) => setShowColorPicker ( false ) } />
74+
75+ < ChromePicker
76+ className = "custom-chrome-picker"
77+ color = { settings . cursorColor || "#007acc" }
78+ onChange = { handleColorChange }
79+ disableAlpha = { true }
80+ />
81+ </ div >
82+ ) }
83+ </ div >
84+ )
85+ }
86+
3687 < h2 > Sonido 🎶</ h2 >
3788
3889 < label className = "setting-row" >
0 commit comments