@@ -32,6 +32,7 @@ export const Settings = ({ isOpen, onClose }: SettingsProps) => {
3232 const [ reducedMotion , setReducedMotion ] = useState ( false ) ;
3333 const [ dataCleared , setDataCleared ] = useState ( false ) ;
3434 const [ isImportingData , setIsImportingData ] = useState ( false ) ;
35+ const [ radius , setRadius ] = useState < 30 | 60 | 90 > ( 60 ) ; // Default radius for the settings sheet
3536
3637 useEffect ( ( ) => {
3738 const storedTheme = localStorage . getItem ( "current-theme" ) ;
@@ -58,10 +59,10 @@ export const Settings = ({ isOpen, onClose }: SettingsProps) => {
5859
5960
6061 useEffect ( ( ) => {
61- const handleDataCleared = ( ) => setDataCleared ( true ) ;
62- window . addEventListener ( "data-cleared" , handleDataCleared ) ;
63- return ( ) => window . removeEventListener ( "data-cleared" , handleDataCleared ) ;
64- } , [ ] ) ;
62+ const handleDataCleared = ( ) => setDataCleared ( true ) ;
63+ window . addEventListener ( "data-cleared" , handleDataCleared ) ;
64+ return ( ) => window . removeEventListener ( "data-cleared" , handleDataCleared ) ;
65+ } , [ ] ) ;
6566
6667 const handleImportData = ( ) => {
6768 // Open file browser and look for json files
@@ -117,16 +118,16 @@ export const Settings = ({ isOpen, onClose }: SettingsProps) => {
117118 input . click ( ) ;
118119 } ;
119120
120- const clearData = ( ) => {
121- indexedDBStorage . clearAllData ( ) . then ( ( ) => {
122- setDataCleared ( true ) ;
123- // Optionally, dispatch event if other components need to know
124- window . dispatchEvent ( new Event ( "data-cleared" ) ) ;
125- } ) . catch ( ( error ) => {
126- console . error ( "Error clearing data:" , error ) ;
127- alert ( "Failed to clear data. Please try again." ) ;
128- } ) ;
129- } ;
121+ const clearData = ( ) => {
122+ indexedDBStorage . clearAllData ( ) . then ( ( ) => {
123+ setDataCleared ( true ) ;
124+ // Optionally, dispatch event if other components need to know
125+ window . dispatchEvent ( new Event ( "data-cleared" ) ) ;
126+ } ) . catch ( ( error ) => {
127+ console . error ( "Error clearing data:" , error ) ;
128+ alert ( "Failed to clear data. Please try again." ) ;
129+ } ) ;
130+ } ;
130131
131132 const handleThemeChange = ( newTheme : string ) => {
132133 setTheme ( newTheme ) ;
@@ -142,6 +143,26 @@ const clearData = () => {
142143 large : '18px'
143144 } ;
144145 document . documentElement . style . fontSize = sizeMap [ newSize as keyof typeof sizeMap ] ;
146+
147+ const radiusMap = {
148+ small : 40 ,
149+ medium : 60 ,
150+ large : 65
151+ } ;
152+ const cxcyMap = {
153+ small : 55 ,
154+ medium : 72 ,
155+ large : 73
156+ } ;
157+ const timerCircle = document . getElementById ( "circle" ) ;
158+ if ( timerCircle ) {
159+ const r = radiusMap [ newSize as keyof typeof radiusMap ] ;
160+ const cxcy = cxcyMap [ newSize as keyof typeof cxcyMap ] ;
161+ timerCircle . setAttribute ( "r" , r . toString ( ) ) ;
162+ timerCircle . setAttribute ( "cx" , cxcy . toString ( ) ) ;
163+ timerCircle . setAttribute ( "cy" , cxcy . toString ( ) ) ;
164+ }
165+
145166 } ;
146167
147168 const toggleHighContrast = ( ) => {
0 commit comments