返回 DeepSeek-Reasonix
desktopPreferencesMock.ts
根目录 / desktop / frontend / src / lib / desktopPreferencesMock.ts
1 import type { SettingsView } from "./types";
2 import { normalizeStatusBarItems } from "./statusBarItems";
3 import { applyMockLegacyReasoningMode, applyMockSessionExperience } from "./sessionExperienceMock";
4
5 /** Browser fixtures share one preference snapshot and its compatibility mirrors. */
6 export function createDesktopPreferencesMock(settings: SettingsView) {
7 return {
8 async SetCloseBehavior(mode: string) {
9 settings.closeBehavior = mode === "quit" ? "quit" : "background";
10 },
11 async SetDisplayMode() { applyMockSessionExperience(settings, "standard"); },
12 async SetStatusBarStyle(style: string) {
13 settings.statusBarStyle = style === "text" ? "text" : "icon";
14 },
15 async SetStatusBarItems(items: string[]) {
16 settings.statusBarItems = normalizeStatusBarItems(items);
17 },
18 async SetDesktopLanguage(lang: string) {
19 settings.desktopLanguage = lang === "en" || lang === "zh" ? lang : "";
20 },
21 async SetDesktopCurrency(currency: string) {
22 settings.desktopCurrency = currency === "CNY" || currency === "USD" ? currency : "";
23 },
24 async SetDesktopCheckUpdates(enabled: boolean) {
25 settings.checkUpdates = enabled;
26 },
27 async SetDesktopUpdateChannel(channel: string) {
28 void channel;
29 settings.updateChannel = "stable";
30 },
31 async SetDesktopTelemetry(enabled: boolean) {
32 settings.telemetry = enabled;
33 },
34 async SetDesktopMetrics(enabled: boolean) {
35 settings.metrics = enabled;
36 },
37 async SetDesktopConversationWidth(width: string) { settings.conversationWidth = width; },
38 async SetReasoningDisplayMode(mode: "hidden" | "summary" | "auto" | "expanded") { applyMockLegacyReasoningMode(settings, mode); },
39 async SetSessionExperience(mode: "standard" | "deep") { applyMockSessionExperience(settings, mode); },
40 async SetExpandThinking() { applyMockSessionExperience(settings, "standard"); },
41 async MigrateDesktopPreferences(language: string, theme: string, style: string) {
42 if (!settings.desktopLanguage) settings.desktopLanguage = language === "en" || language === "zh" || language === "zh-TW" ? language : "";
43 if (!settings.desktopTheme && !settings.desktopThemeStyle) {
44 settings.desktopTheme = theme === "auto" || theme === "light" ? theme : "dark";
45 settings.desktopThemeStyle = style;
46 }
47 },
48 };
49 }
50
50 lines TYPESCRIPT