First step refactoring
This commit is contained in:
		
							parent
							
								
									2f84559ec2
								
							
						
					
					
						commit
						7a74e70520
					
				
					 2 changed files with 146 additions and 306 deletions
				
			
		|  | @ -1,17 +1,13 @@ | |||
| import React, { useState, useEffect } from 'react'; | ||||
| import { applyIOMarketTheme, applyWhiteTheme, applyBlackTheme } from './theme'; | ||||
| import { applyTheme, applyCustomTheme } from './theme'; | ||||
| import { exportSettings, importSettings } from './settingUtils'; // Import utility functions
 | ||||
| import { getAllLocalStorageItems } from '../backend/GetLocalStorage'; | ||||
| import { | ||||
|   sendToDatabase, | ||||
|   createAccount, | ||||
|   changePassword, | ||||
|   getData, | ||||
|   changeData, | ||||
|   checkCredentials, | ||||
|   deleteAccount, | ||||
| } from '../backend/database'; | ||||
| import { equal } from 'assert'; | ||||
| 
 | ||||
| 
 | ||||
| const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ({ closeSettings, accountName }) => { | ||||
| 
 | ||||
|  | @ -103,24 +99,7 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( | |||
|       const savedTheme = localStorage.getItem('selectedTheme'); | ||||
|       if (savedTheme) { | ||||
|         setSelectedTheme(savedTheme); | ||||
|         // Apply the saved theme on initial load
 | ||||
|         switch (savedTheme) { | ||||
|           case 'IOMARKET': | ||||
|             applyIOMarketTheme(); | ||||
|             break; | ||||
|           case 'WHITE': | ||||
|             applyWhiteTheme(); | ||||
|             break; | ||||
|           case 'BLACK': | ||||
|             applyBlackTheme(); | ||||
|             break; | ||||
|           case 'CUSTOM': | ||||
|             // Handle custom theme application here if necessary
 | ||||
|             break; | ||||
|           default: | ||||
|             applyIOMarketTheme(); | ||||
|             break; | ||||
|         } | ||||
|         applyTheme(savedTheme); | ||||
|       }    | ||||
|     }, []); // Runs only once when the component mounts
 | ||||
| 
 | ||||
|  | @ -265,144 +244,7 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( | |||
|     localStorage.setItem('radioSelection', newValue);  // Save the selection for persistence
 | ||||
|   }; | ||||
| 
 | ||||
|   // Apply imported settings to the CSS variables
 | ||||
|     const applySettings = (settings: any) => { | ||||
|       if (settings.backgroundColor) { | ||||
|         setBackgroundColor(settings.backgroundColor); | ||||
|         document.documentElement.style.setProperty('--background-color', settings.backgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.textColor) { | ||||
|         setTextColor(settings.textColor); | ||||
|         document.documentElement.style.setProperty('--text-color', settings.textColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.inputBackgroundColor) { | ||||
|         setInputBackgroundColor(settings.inputBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--input-background-color', settings.inputBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.inputButtonColor) { | ||||
|         setInputButtonColor(settings.inputButtonColor); | ||||
|         document.documentElement.style.setProperty('--input-button-color', settings.inputButtonColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.inputButtonHoverColor) { | ||||
|         setInputButtonHoverColor(settings.inputButtonHoverColor); | ||||
|         document.documentElement.style.setProperty('--input-button-hover-color', settings.inputButtonHoverColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.userMessageBackgroundColor) { | ||||
|         setUserMessageBackgroundColor(settings.userMessageBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--user-message-background-color', settings.userMessageBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.userMessageTextColor) { | ||||
|         setUserMessageTextColor(settings.userMessageTextColor); | ||||
|         document.documentElement.style.setProperty('--user-message-text-color', settings.userMessageTextColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.aiMessageBackgroundColor) { | ||||
|         setAiMessageBackgroundColor(settings.aiMessageBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--ai-message-background-color', settings.aiMessageBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.aiMessageTextColor) { | ||||
|         setAiMessageTextColor(settings.aiMessageTextColor); | ||||
|         document.documentElement.style.setProperty('--ai-message-text-color', settings.aiMessageTextColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.buttonBackgroundColor) { | ||||
|         setButtonBackgroundColor(settings.buttonBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--button-background-color', settings.buttonBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.buttonHoverBackgroundColor) { | ||||
|         setButtonHoverBackgroundColor(settings.buttonHoverBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--button-hover-background-color', settings.buttonHoverBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.modelsBackgroundColor) { | ||||
|         setModelsBackgroundColor(settings.modelsBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--models-background-color', settings.modelsBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.historyBackgroundColor) { | ||||
|         setHistoryBackgroundColor(settings.historyBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--history-background-color', settings.historyBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.leftPanelBackgroundColor) { | ||||
|         setLeftPanelBackgroundColor(settings.leftPanelBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--left-panel-background-color', settings.leftPanelBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.conversationBackgroundColor) { | ||||
|         setConversationBackgroundColor(settings.conversationBackgroundColor); | ||||
|         document.documentElement.style.setProperty('--conversation-background-color', settings.conversationBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.popUpTextColor) { | ||||
|         setPopUpTextColor(settings.popUpTextColor); | ||||
|         document.documentElement.style.setProperty('--pop-up-text', settings.popUpTextColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.inputBorderColor) { | ||||
|         setInputBorderColor(settings.inputBorderColor); | ||||
|         document.documentElement.style.setProperty('--input-border-color', settings.inputBorderColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.fontFamily) { | ||||
|         setFontFamily(settings.fontFamily); | ||||
|         document.documentElement.style.setProperty('--font-family', settings.fontFamily); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.fontSize) { | ||||
|         setFontSize(settings.fontSize); | ||||
|         document.documentElement.style.setProperty('--font-size', settings.fontSize); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.burgerMenu) { | ||||
|         setBurgerMenu(settings.burgerMenu); | ||||
|         document.documentElement.style.setProperty('--burger-menu-background-color', settings.burgerMenu); | ||||
|       } | ||||
| 
 | ||||
|       // Additional theme settings
 | ||||
|       if (settings.faqBackgroundColor) { | ||||
|         document.documentElement.style.setProperty('--faq-background-color', settings.faqBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.faqHeadingColor) { | ||||
|         document.documentElement.style.setProperty('--faq-heading-color', settings.faqHeadingColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.faqItemBackgroundColor) { | ||||
|         document.documentElement.style.setProperty('--faq-item-background-color', settings.faqItemBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.faqItemHeadingColor) { | ||||
|         document.documentElement.style.setProperty('--faq-item-heading-color', settings.faqItemHeadingColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.faqItemTextColor) { | ||||
|         document.documentElement.style.setProperty('--faq-item-text-color', settings.faqItemTextColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.faqItemHoverBackgroundColor) { | ||||
|         document.documentElement.style.setProperty('--faq-item-hover-background-color', settings.faqItemHoverBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.popupBackgroundColor) { | ||||
|         document.documentElement.style.setProperty('--popup-background-color', settings.popupBackgroundColor); | ||||
|       } | ||||
| 
 | ||||
|       if (settings.overlayTextColor) { | ||||
|         document.documentElement.style.setProperty('--overlay-text-color', settings.overlayTextColor); | ||||
|       } | ||||
|     }; | ||||
| 
 | ||||
| 
 | ||||
|     // Function to handle updating all credentials
 | ||||
|      // Function to handle updating all credentials
 | ||||
|     const handleUpdateCredentials = async () => { | ||||
|       // Update account information
 | ||||
|       const newData = { | ||||
|  | @ -624,23 +466,7 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( | |||
|                         localStorage.setItem("selectedTheme", theme); | ||||
|            | ||||
|                         // Apply the appropriate theme based on selection
 | ||||
|                         switch (theme) { | ||||
|                           case 'IOMARKET': | ||||
|                             applyIOMarketTheme(); | ||||
|                             break; | ||||
|                           case 'WHITE': | ||||
|                             applyWhiteTheme(); | ||||
|                             break; | ||||
|                           case 'BLACK': | ||||
|                             applyBlackTheme(); | ||||
|                             break; | ||||
|                           case 'CUSTOM': | ||||
|                             // Handle custom theme logic here if necessary
 | ||||
|                             break; | ||||
|                           default: | ||||
|                             applyIOMarketTheme(); | ||||
|                             break; | ||||
|                         } | ||||
|                         applyTheme(theme); | ||||
|                       } | ||||
|                     }} | ||||
|                   > | ||||
|  | @ -1198,7 +1024,7 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( | |||
|   const handleImport = (event: React.ChangeEvent<HTMLInputElement>) => { | ||||
|     if (event.target.files && event.target.files.length > 0) { | ||||
|       const file = event.target.files[0]; | ||||
|       importSettings(file, applySettings); | ||||
|       importSettings(file, applyCustomTheme); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|  | @ -1272,7 +1098,6 @@ const Settings: React.FC<{ closeSettings: () => void; accountName: string }> = ( | |||
|             {renderSettingsContent()} | ||||
|             <button className="close-popup" onClick={closeSettings}>Close</button> | ||||
|             <button className="apply" onClick={() => {  | ||||
|                   applySettings;  | ||||
|                   getAllLocalStorageItems();  | ||||
|                   closeSettings();  | ||||
|               }}> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue