Skip to content

Commit b0fa549

Browse files
author
Mohammod Al Amin Ashik
committed
fix: Add extensive logging for startup settings debugging
- Add console logging throughout Switch component and settings page - Improve error handling with proper state rollback - Extract handleClick to separate function for better debugging - Add step-by-step logging to trace toggle behavior - Clean up unused imports in tray.rs This will help diagnose why toggles appear non-functional.
1 parent fed9391 commit b0fa549

3 files changed

Lines changed: 32 additions & 9 deletions

File tree

apps/desktop/src-tauri/src/tray.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
//! - Quit application
77
88
use tauri::{
9-
menu::{Menu, MenuBuilder, MenuItemBuilder, PredefinedMenuItem, SubmenuBuilder},
9+
menu::{Menu, MenuBuilder, SubmenuBuilder},
1010
tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent},
1111
AppHandle, Emitter, Manager, Runtime,
1212
};

apps/desktop/src/features/settings/SettingsPage.tsx

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,24 @@ export function SettingsPage() {
7777
key: keyof StartupSettings,
7878
value: boolean
7979
) => {
80+
console.log(`[Settings] Updating ${key} to ${value}`);
81+
82+
// Save old state for rollback
83+
const oldSettings = { ...startupSettings };
8084
const newSettings = { ...startupSettings, [key]: value };
85+
86+
// Update UI immediately for better UX
8187
setStartupSettings(newSettings);
82-
8388
setSavingSettings(true);
89+
8490
try {
91+
console.log('[Settings] Invoking update_startup_settings:', newSettings);
8592
await invoke('update_startup_settings', { settings: newSettings });
86-
console.log('Startup settings saved:', newSettings);
93+
console.log('[Settings] Successfully saved:', newSettings);
8794
} catch (error) {
88-
console.error('Failed to save startup settings:', error);
95+
console.error('[Settings] Failed to save:', error);
8996
// Revert on error
90-
setStartupSettings(startupSettings);
97+
setStartupSettings(oldSettings);
9198
} finally {
9299
setSavingSettings(false);
93100
}
@@ -144,7 +151,10 @@ export function SettingsPage() {
144151
</div>
145152
<Switch
146153
checked={startupSettings.autoLaunch}
147-
onCheckedChange={(checked) => updateStartupSetting('autoLaunch', checked)}
154+
onCheckedChange={(checked) => {
155+
console.log('Auto-launch toggled:', checked);
156+
updateStartupSetting('autoLaunch', checked);
157+
}}
148158
disabled={savingSettings}
149159
data-testid="auto-launch-switch"
150160
/>
@@ -162,7 +172,10 @@ export function SettingsPage() {
162172
</div>
163173
<Switch
164174
checked={startupSettings.startMinimized}
165-
onCheckedChange={(checked) => updateStartupSetting('startMinimized', checked)}
175+
onCheckedChange={(checked) => {
176+
console.log('Start minimized toggled:', checked);
177+
updateStartupSetting('startMinimized', checked);
178+
}}
166179
disabled={savingSettings || !startupSettings.autoLaunch}
167180
data-testid="start-minimized-switch"
168181
/>
@@ -180,7 +193,10 @@ export function SettingsPage() {
180193
</div>
181194
<Switch
182195
checked={startupSettings.closeToTray}
183-
onCheckedChange={(checked) => updateStartupSetting('closeToTray', checked)}
196+
onCheckedChange={(checked) => {
197+
console.log('Close to tray toggled:', checked);
198+
updateStartupSetting('closeToTray', checked);
199+
}}
184200
disabled={savingSettings}
185201
data-testid="close-to-tray-switch"
186202
/>

packages/ui/src/components/common/Switch.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,20 @@ export function Switch({
2020
className,
2121
'data-testid': testId,
2222
}: SwitchProps) {
23+
const handleClick = () => {
24+
if (!disabled) {
25+
console.log('[Switch] Clicked, current:', checked, 'will become:', !checked);
26+
onCheckedChange(!checked);
27+
}
28+
};
29+
2330
return (
2431
<button
2532
type="button"
2633
role="switch"
2734
aria-checked={checked}
2835
disabled={disabled}
29-
onClick={() => !disabled && onCheckedChange(!checked)}
36+
onClick={handleClick}
3037
data-testid={testId}
3138
className={cn(
3239
'relative inline-flex h-6 w-11 shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-[rgb(var(--primary))] focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',

0 commit comments

Comments
 (0)