feat: add PostHog telemetry and privacy toggle in settings (#409)

This commit is contained in:
paisley
2026-03-11 15:22:02 +08:00
committed by GitHub
Unverified
parent d11e266cbb
commit da8ed3bb32
9 changed files with 182 additions and 121 deletions

View File

@@ -16,6 +16,7 @@ interface SettingsState {
language: string;
startMinimized: boolean;
launchAtStartup: boolean;
telemetryEnabled: boolean;
// Gateway
gatewayAutoStart: boolean;
@@ -45,6 +46,7 @@ interface SettingsState {
setLanguage: (language: string) => void;
setStartMinimized: (value: boolean) => void;
setLaunchAtStartup: (value: boolean) => void;
setTelemetryEnabled: (value: boolean) => void;
setGatewayAutoStart: (value: boolean) => void;
setGatewayPort: (port: number) => void;
setProxyEnabled: (value: boolean) => void;
@@ -72,6 +74,7 @@ const defaultSettings = {
})(),
startMinimized: false,
launchAtStartup: false,
telemetryEnabled: true,
gatewayAutoStart: true,
gatewayPort: 18789,
proxyEnabled: false,
@@ -113,23 +116,30 @@ export const useSettingsStore = create<SettingsState>()(
void hostApiFetch('/api/settings/language', {
method: 'PUT',
body: JSON.stringify({ value: language }),
}).catch(() => {});
}).catch(() => { });
},
setStartMinimized: (startMinimized) => set({ startMinimized }),
setLaunchAtStartup: (launchAtStartup) => set({ launchAtStartup }),
setTelemetryEnabled: (telemetryEnabled) => {
set({ telemetryEnabled });
void hostApiFetch('/api/settings/telemetryEnabled', {
method: 'PUT',
body: JSON.stringify({ value: telemetryEnabled }),
}).catch(() => { });
},
setGatewayAutoStart: (gatewayAutoStart) => {
set({ gatewayAutoStart });
void hostApiFetch('/api/settings/gatewayAutoStart', {
method: 'PUT',
body: JSON.stringify({ value: gatewayAutoStart }),
}).catch(() => {});
}).catch(() => { });
},
setGatewayPort: (gatewayPort) => {
set({ gatewayPort });
void hostApiFetch('/api/settings/gatewayPort', {
method: 'PUT',
body: JSON.stringify({ value: gatewayPort }),
}).catch(() => {});
}).catch(() => { });
},
setProxyEnabled: (proxyEnabled) => set({ proxyEnabled }),
setProxyServer: (proxyServer) => set({ proxyServer }),