Client settings (#7381)
Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
@@ -21,16 +21,32 @@ export type DefaultKeyboardShortcuts = {
|
||||
[K in keyof KeyboardShortcuts]: string;
|
||||
};
|
||||
|
||||
export interface SessionSharingConfig {
|
||||
enabled: boolean;
|
||||
baseUrl: string;
|
||||
}
|
||||
|
||||
export interface Settings {
|
||||
// Desktop app settings
|
||||
showMenuBarIcon: boolean;
|
||||
showDockIcon: boolean;
|
||||
enableWakelock: boolean;
|
||||
spellcheckEnabled: boolean;
|
||||
externalGoosed?: ExternalGoosedConfig;
|
||||
externalGoosed: ExternalGoosedConfig;
|
||||
globalShortcut?: string | null;
|
||||
keyboardShortcuts?: KeyboardShortcuts;
|
||||
keyboardShortcuts: KeyboardShortcuts;
|
||||
|
||||
// UI preferences (migrated from localStorage)
|
||||
theme: 'dark' | 'light';
|
||||
useSystemTheme: boolean;
|
||||
responseStyle: string;
|
||||
showPricing: boolean;
|
||||
sessionSharing: SessionSharingConfig;
|
||||
seenAnnouncementIds: string[];
|
||||
}
|
||||
|
||||
export type SettingKey = keyof Settings;
|
||||
|
||||
export const defaultKeyboardShortcuts: DefaultKeyboardShortcuts = {
|
||||
focusWindow: 'CommandOrControl+Alt+G',
|
||||
quickLauncher: 'CommandOrControl+Alt+Shift+G',
|
||||
@@ -44,6 +60,31 @@ export const defaultKeyboardShortcuts: DefaultKeyboardShortcuts = {
|
||||
alwaysOnTop: 'CommandOrControl+Shift+T',
|
||||
};
|
||||
|
||||
export const defaultSettings: Settings = {
|
||||
// Desktop app settings
|
||||
showMenuBarIcon: true,
|
||||
showDockIcon: true,
|
||||
enableWakelock: false,
|
||||
spellcheckEnabled: true,
|
||||
keyboardShortcuts: defaultKeyboardShortcuts,
|
||||
externalGoosed: {
|
||||
enabled: false,
|
||||
url: '',
|
||||
secret: '',
|
||||
},
|
||||
|
||||
// UI preferences
|
||||
theme: 'light',
|
||||
useSystemTheme: true,
|
||||
responseStyle: 'concise',
|
||||
showPricing: true,
|
||||
sessionSharing: {
|
||||
enabled: false,
|
||||
baseUrl: '',
|
||||
},
|
||||
seenAnnouncementIds: [],
|
||||
};
|
||||
|
||||
export function getKeyboardShortcuts(settings: Settings): KeyboardShortcuts {
|
||||
if (!settings.keyboardShortcuts && settings.globalShortcut !== undefined) {
|
||||
const focusShortcut = settings.globalShortcut;
|
||||
|
||||
Reference in New Issue
Block a user