@@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react';
22import PropTypes from 'prop-types' ;
33import PropertyValueTable from '../common/PropertyValueTable' ;
44import ThemeSelector from '../ThemeSelector' ;
5- import LanguageSelector from '../LanguageSelector' ;
65
76/**
87 * ProfileSettings component allows users to customize their profile settings,
@@ -26,14 +25,11 @@ const ProfileSettings = ({ settings, onSaveSettings }) => {
2625 const [ profileSettings , setProfileSettings ] = useState ( safeSettings ) ;
2726 const [ isEditing , setIsEditing ] = useState ( false ) ;
2827 const [ currentTheme , setCurrentTheme ] = useState ( 'blueprint' ) ;
29- const [ currentLanguage , setCurrentLanguage ] = useState ( 'en' ) ;
3028
31- // Load theme and language from localStorage on component mount
29+ // Load theme from localStorage on component mount
3230 useEffect ( ( ) => {
3331 const savedTheme = localStorage . getItem ( 'theme' ) || 'blueprint' ;
34- const savedLanguage = localStorage . getItem ( 'preferred-language' ) || 'en' ;
3532 setCurrentTheme ( savedTheme ) ;
36- setCurrentLanguage ( savedLanguage ) ;
3733 } , [ ] ) ;
3834
3935 // Update profileSettings when settings prop changes
@@ -65,26 +61,19 @@ const ProfileSettings = ({ settings, onSaveSettings }) => {
6561 // Theme will be applied by the ThemeSelector component
6662 } ;
6763
68- // Handle language change
69- const handleLanguageChange = ( languageCode ) => {
70- setCurrentLanguage ( languageCode ) ;
71- localStorage . setItem ( 'preferred-language' , languageCode ) ;
72- } ;
73-
74- // Available languages
75- const languages = [
76- { code : 'en' , name : 'English' , country : '🇺🇸' } ,
77- { code : 'es' , name : 'Español' , country : '🇪🇸' } ,
78- { code : 'fr' , name : 'Français' , country : '🇫🇷' } ,
79- { code : 'de' , name : 'Deutsch' , country : '🇩🇪' } ,
80- { code : 'ja' , name : '日本語' , country : '🇯🇵' } ,
81- { code : 'ko' , name : '한국어' , country : '🇰🇷' } ,
82- { code : 'zh' , name : '中文' , country : '🇨🇳' }
83- ] ;
84-
85- // Get current language name
64+ // Get current language name from localStorage
8665 const getCurrentLanguageName = ( ) => {
87- const lang = languages . find ( l => l . code === currentLanguage ) ;
66+ const savedLanguage = localStorage . getItem ( 'preferred-language' ) || 'en' ;
67+ const languages = [
68+ { code : 'en' , name : 'English' , country : '🇺🇸' } ,
69+ { code : 'es' , name : 'Español' , country : '🇪🇸' } ,
70+ { code : 'fr' , name : 'Français' , country : '🇫🇷' } ,
71+ { code : 'de' , name : 'Deutsch' , country : '🇩🇪' } ,
72+ { code : 'ja' , name : '日本語' , country : '🇯🇵' } ,
73+ { code : 'ko' , name : '한국어' , country : '🇰🇷' } ,
74+ { code : 'zh' , name : '中文' , country : '🇨🇳' }
75+ ] ;
76+ const lang = languages . find ( l => l . code === savedLanguage ) ;
8877 return lang ? `${ lang . country } ${ lang . name } ` : '🇺🇸 English' ;
8978 } ;
9079
@@ -110,12 +99,12 @@ const ProfileSettings = ({ settings, onSaveSettings }) => {
11099 {
111100 property : 'THEME' ,
112101 value : getCurrentThemeName ( ) ,
113- description : 'Visual appearance and styling '
102+ description : 'Current visual theme - use theme selector to change '
114103 } ,
115104 {
116105 property : 'LANGUAGE' ,
117106 value : getCurrentLanguageName ( ) ,
118- description : 'Interface language and locale '
107+ description : 'Interface language - change in header navigation '
119108 } ,
120109 ] ;
121110 // Prepare display preferences data
@@ -226,29 +215,72 @@ const ProfileSettings = ({ settings, onSaveSettings }) => {
226215 < div className = "ascii-form-section" >
227216 < div className = "ascii-form-section-title" > INTERFACE PREFERENCES</ div >
228217
229- < div className = "ascii-form-row-2 " >
218+ < div className = "ascii-form-row-1 " >
230219 < div className = "ascii-field" >
231220 < label > THEME</ label >
232221 < div className = "theme-selector-container" >
233- < ThemeSelector />
234- </ div >
235- < div className = "ascii-field-help" > Choose your preferred visual theme</ div >
236- </ div >
237-
238- < div className = "ascii-field" >
239- < label > LANGUAGE</ label >
240- < div className = "language-selector-container" >
241- < LanguageSelector
242- languages = { languages }
243- currentLocale = { currentLanguage }
244- onLanguageChange = { handleLanguageChange }
222+ < ThemeSelector
223+ value = { currentTheme }
224+ onChange = { handleThemeChange }
225+ className = "profile-theme-selector"
245226 />
246227 </ div >
247- < div className = "ascii-field-help" > Select your preferred language </ div >
228+ < div className = "ascii-field-help" > Choose your preferred visual theme </ div >
248229 </ div >
249230 </ div >
231+
232+ < div className = "ascii-form-info" >
233+ < p > 💡 Language settings have been moved to the header navigation for easier access.</ p >
234+ < p > You can change your language preference using the language selector in the top navigation bar.</ p >
235+ </ div >
250236 </ div >
251237
238+ < style jsx > { `
239+ .profile-theme-selector {
240+ width: 100%;
241+ background: var(--color-background);
242+ border: 1px solid var(--color-border);
243+ border-radius: 0;
244+ }
245+
246+ .profile-theme-selector .app-header-control {
247+ width: 100%;
248+ background: var(--color-background);
249+ border: 1px solid var(--color-border);
250+ color: var(--color-foreground);
251+ padding: 8px 12px;
252+ border-radius: 0;
253+ font-family: inherit;
254+ font-size: 14px;
255+ text-align: left;
256+ }
257+
258+ .profile-theme-selector .app-dropdown-menu {
259+ width: 100%;
260+ max-width: none;
261+ left: 0 !important;
262+ right: 0;
263+ }
264+
265+ .ascii-form-info {
266+ background: var(--color-background-alt);
267+ border: 1px solid var(--color-border);
268+ border-radius: 4px;
269+ padding: 12px;
270+ margin-top: 16px;
271+ font-size: 0.9rem;
272+ color: var(--color-foreground-muted);
273+ }
274+
275+ .ascii-form-info p {
276+ margin: 0 0 8px 0;
277+ }
278+
279+ .ascii-form-info p:last-child {
280+ margin-bottom: 0;
281+ }
282+ ` } </ style >
283+
252284 < div className = "ascii-form-section" >
253285 < div className = "ascii-form-section-title" > DISPLAY PREFERENCES</ div >
254286
0 commit comments