Skip to content

Commit 92a3025

Browse files
committed
Fix: Move Language Settings to General Settings
1 parent bd78401 commit 92a3025

File tree

4 files changed

+45
-155
lines changed

4 files changed

+45
-155
lines changed

src/components/pages/SettingsPage.tsx

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React, { useState, useEffect, useRef } from 'react';
2-
import { Server, MessageSquare, Languages, Sliders } from 'lucide-react';
2+
import { Server, MessageSquare, Sliders } from 'lucide-react';
33
import { SettingsService } from '../../services/settings-service';
44
import { ProviderSettings } from '../../types/settings';
5-
import { ApiManagement, ChatSettings, LanguageSettings, GeneralSettings } from '../settings';
5+
import { ApiManagement, ChatSettings, GeneralSettings } from '../settings';
66
import { DatabaseIntegrationService } from '../../services/database-integration';
77
import { AIService } from '../../services/ai-service';
88
import { v4 as uuidv4 } from 'uuid';
@@ -13,7 +13,7 @@ interface SettingsPageProps {
1313
isOpen: boolean;
1414
}
1515

16-
type SettingsTab = 'api' | 'models' | 'chat' | 'language' | 'general';
16+
type SettingsTab = 'api' | 'models' | 'chat' | 'general';
1717

1818
export const SettingsPage: React.FC<SettingsPageProps> = ({
1919
isOpen,
@@ -321,16 +321,6 @@ export const SettingsPage: React.FC<SettingsPageProps> = ({
321321
<MessageSquare size={18} className="mr-2" />
322322
{t('chat.sendMessage')}
323323
</button>
324-
325-
<button
326-
className={`flex items-center w-full px-4 py-3 text-left transition-all duration-200 ${
327-
activeTab === 'language' ? 'settings-category-selected-item settings-category-selected-item-text font-medium' : 'settings-category-item settings-category-item-text'
328-
}`}
329-
onClick={() => setActiveTab('language')}
330-
>
331-
<Languages size={18} className="mr-2" />
332-
{t('settings.language')}
333-
</button>
334324
</div>
335325
</div>
336326

@@ -371,14 +361,6 @@ export const SettingsPage: React.FC<SettingsPageProps> = ({
371361
onSaveSettings={handleSave}
372362
/>
373363
)}
374-
375-
{/* Language Settings Tab */}
376-
{activeTab === 'language' && (
377-
<div className="p-6">
378-
<h1 className="mb-6 text-2xl font-semibold">{t('settings.language')}</h1>
379-
<LanguageSettings />
380-
</div>
381-
)}
382364
</div>
383365
</div>
384366
</div>

src/components/settings/GeneralSettings.tsx

Lines changed: 42 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ export const GeneralSettings: React.FC<GeneralSettingsProps> = ({
1515
startWithSystem,
1616
startupToTray,
1717
closeToTray,
18-
proxyMode,
19-
sendErrorReports,
2018
onSettingChange,
2119
onSaveSettings
2220
}) => {
23-
const { t } = useTranslation();
24-
const [customProxyUrl, setCustomProxyUrl] = useState<string>('');
21+
const { t, i18n } = useTranslation();
2522
// eslint-disable-next-line @typescript-eslint/no-unused-vars
2623
const [isWindows, setIsWindows] = useState(false);
24+
const [currentLanguage, setCurrentLanguage] = useState(i18n.language);
2725

2826
// Check if running on Windows platform
2927
useEffect(() => {
@@ -37,16 +35,35 @@ export const GeneralSettings: React.FC<GeneralSettingsProps> = ({
3735
checkPlatform();
3836
}, []);
3937

40-
const handleProxyModeChange = (mode: 'system' | 'custom' | 'none') => {
41-
onSettingChange('proxyMode', mode);
42-
onSaveSettings();
43-
};
38+
// Update currentLanguage when i18n.language changes
39+
useEffect(() => {
40+
setCurrentLanguage(i18n.language);
41+
}, [i18n.language]);
42+
43+
// const handleProxyModeChange = (mode: 'system' | 'custom' | 'none') => {
44+
// onSettingChange('proxyMode', mode);
45+
// onSaveSettings();
46+
// };
4447

4548
const handleToggleChange = (key: string) => (e: React.ChangeEvent<HTMLInputElement>) => {
4649
onSettingChange(key, e.target.checked);
4750
onSaveSettings();
4851
};
4952

53+
const handleLanguageChange = (langCode: string) => {
54+
i18n.changeLanguage(langCode);
55+
setCurrentLanguage(langCode);
56+
};
57+
58+
const languages = [
59+
{ code: 'en', name: 'English' },
60+
{ code: 'zh_CN', name: '简体中文' },
61+
{ code: 'zh_TW', name: '繁體中文' },
62+
{ code: 'ja', name: '日本語' },
63+
{ code: 'ko', name: '한국어' },
64+
{ code: 'es', name: 'Español' }
65+
];
66+
5067
return (
5168
<div className="flex flex-col h-full p-4">
5269
<div className="flex-1">
@@ -105,93 +122,31 @@ export const GeneralSettings: React.FC<GeneralSettingsProps> = ({
105122
</div>
106123
</div>
107124

108-
{/* Network Settings */}
125+
{/* Language Settings */}
109126
<div className="p-4 mb-4 settings-section">
110-
<h3 className="mb-4 text-lg font-medium settings-section-title">{t('settings.networkProxy')}</h3>
127+
<h3 className="mb-4 text-lg font-medium settings-section-title">{t('settings.language')}</h3>
111128

112-
<div className="p-3 space-y-4 settings-radio-group">
113-
<div className="flex items-center">
114-
<input
115-
type="radio"
116-
id="proxy-system"
117-
name="proxy-mode"
118-
checked={proxyMode === 'system'}
119-
onChange={() => handleProxyModeChange('system')}
120-
className="w-4 h-4 text-blue-600 form-radio"
121-
/>
122-
<label htmlFor="proxy-system" className={`ml-2 text-sm font-medium ${proxyMode === 'system' ? 'settings-radio-item-active' : 'settings-radio-item'}`}>
123-
{t('settings.systemProxy')}
124-
</label>
125-
</div>
126-
127-
<div className="flex items-center">
128-
<input
129-
type="radio"
130-
id="proxy-custom"
131-
name="proxy-mode"
132-
checked={proxyMode === 'custom'}
133-
onChange={() => handleProxyModeChange('custom')}
134-
className="w-4 h-4 text-blue-600 form-radio"
135-
/>
136-
<label htmlFor="proxy-custom" className={`ml-2 text-sm font-medium ${proxyMode === 'custom' ? 'settings-radio-item-active' : 'settings-radio-item'}`}>
137-
{t('settings.customProxy')}
138-
</label>
139-
</div>
140-
141-
{proxyMode === 'custom' && (
142-
<div className="pl-6 mt-2">
129+
<div className="space-y-4">
130+
{languages.map((lang) => (
131+
<div key={lang.code} className="flex items-center">
143132
<input
144-
type="text"
145-
value={customProxyUrl}
146-
onChange={(e) => setCustomProxyUrl(e.target.value)}
147-
onBlur={() => {
148-
onSettingChange('customProxyUrl', customProxyUrl);
149-
onSaveSettings();
150-
}}
151-
placeholder="http://proxy.example.com:8080"
152-
className="w-full p-2 input-box"
133+
type="radio"
134+
id={`lang-${lang.code}`}
135+
name="language"
136+
value={lang.code}
137+
checked={currentLanguage === lang.code}
138+
onChange={() => handleLanguageChange(lang.code)}
139+
className="w-4 h-4 text-blue-600 form-radio"
153140
/>
141+
<label htmlFor={`lang-${lang.code}`} className="ml-2 text-sm font-medium settings-toggle-label">
142+
{lang.name}
143+
</label>
154144
</div>
155-
)}
156-
157-
<div className="flex items-center">
158-
<input
159-
type="radio"
160-
id="proxy-none"
161-
name="proxy-mode"
162-
checked={proxyMode === 'none'}
163-
onChange={() => handleProxyModeChange('none')}
164-
className="w-4 h-4 text-blue-600 form-radio"
165-
/>
166-
<label htmlFor="proxy-none" className={`ml-2 text-sm font-medium ${proxyMode === 'none' ? 'settings-radio-item-active' : 'settings-radio-item'}`}>
167-
{t('settings.noProxy')}
168-
</label>
169-
</div>
145+
))}
170146
</div>
171147
</div>
172148

173-
{/* Privacy Settings */}
174-
<div className="p-4 mb-4 settings-section">
175-
<h3 className="mb-4 text-lg font-medium settings-section-title">{t('settings.privacy')}</h3>
176-
177-
<div className="space-y-4">
178-
<div className="flex items-center">
179-
<input
180-
type="checkbox"
181-
id="send-error-reports"
182-
checked={sendErrorReports}
183-
onChange={handleToggleChange('sendErrorReports')}
184-
className="w-4 h-4 checkbox-input"
185-
/>
186-
<label htmlFor="send-error-reports" className="ml-2 text-sm font-medium settings-toggle-label">
187-
{t('settings.sendErrorReports')}
188-
</label>
189-
</div>
190-
<p className="text-xs settings-toggle-description">
191-
{t('settings.sendErrorReports_description')}
192-
</p>
193-
</div>
194-
</div>
149+
{/* Network Proxy and Privacy sections are hidden as requested */}
195150
</div>
196151
</div>
197152
);

src/components/settings/LanguageSettings.tsx

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/components/settings/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
export * from './ApiManagement';
22
export * from './ChatSettings';
3-
export * from './LanguageSettings';
43
export * from './GeneralSettings';

0 commit comments

Comments
 (0)