diff --git a/libs/common/src/autofill/constants/index.ts b/libs/common/src/autofill/constants/index.ts index dc79e27b6aa..0b0565218cf 100644 --- a/libs/common/src/autofill/constants/index.ts +++ b/libs/common/src/autofill/constants/index.ts @@ -29,13 +29,13 @@ export const EVENTS = { } as const; export const ClearClipboardDelay = { - Never: null as null, - TenSeconds: 10, - TwentySeconds: 20, - ThirtySeconds: 30, - OneMinute: 60, - TwoMinutes: 120, - FiveMinutes: 300, + Never: "never", + TenSeconds: "tenSeconds", + TwentySeconds: "twentySeconds", + ThirtySeconds: "thirtySeconds", + OneMinute: "oneMinute", + TwoMinutes: "twoMinutes", + FiveMinutes: "fiveMinutes", } as const; /* Ids for context menu items and messaging events */ diff --git a/libs/common/src/autofill/services/autofill-settings.service.ts b/libs/common/src/autofill/services/autofill-settings.service.ts index f39c6e8de30..e0f46f7f547 100644 --- a/libs/common/src/autofill/services/autofill-settings.service.ts +++ b/libs/common/src/autofill/services/autofill-settings.service.ts @@ -92,7 +92,7 @@ const CLEAR_CLIPBOARD_DELAY = new UserKeyDefinition( AUTOFILL_SETTINGS_DISK_LOCAL, "clearClipboardDelay", { - deserializer: (value: ClearClipboardDelaySetting) => value ?? ClearClipboardDelay.Never, + deserializer: (value: ClearClipboardDelaySetting) => value ?? ClearClipboardDelay.FiveMinutes, clearOn: [], }, ); @@ -219,7 +219,7 @@ export class AutofillSettingsService implements AutofillSettingsServiceAbstracti this.clearClipboardDelayState = this.stateProvider.getActive(CLEAR_CLIPBOARD_DELAY); this.clearClipboardDelay$ = this.clearClipboardDelayState.state$.pipe( - map((x) => x ?? ClearClipboardDelay.Never), + map((x) => x ?? ClearClipboardDelay.FiveMinutes), ); } diff --git a/libs/common/src/platform/services/system.service.ts b/libs/common/src/platform/services/system.service.ts index b12bfbd2754..0caabd2eb03 100644 --- a/libs/common/src/platform/services/system.service.ts +++ b/libs/common/src/platform/services/system.service.ts @@ -33,10 +33,10 @@ export class SystemService implements SystemServiceAbstraction { let taskTimeoutInMs = timeoutMs; if (!taskTimeoutInMs) { - const clearClipboardDelayInSeconds = await firstValueFrom( + const clearClipboardDelaySetting = await firstValueFrom( this.autofillSettingsService.clearClipboardDelay$, ); - taskTimeoutInMs = clearClipboardDelayInSeconds ? clearClipboardDelayInSeconds * 1000 : null; + taskTimeoutInMs = this.convertClearClipboardDelayToMs(clearClipboardDelaySetting); } if (!taskTimeoutInMs) { @@ -56,6 +56,27 @@ export class SystemService implements SystemServiceAbstraction { ); } + private convertClearClipboardDelayToMs(setting: string): number | null { + switch (setting) { + case "never": + return null; + case "tenSeconds": + return 10 * 1000; + case "twentySeconds": + return 20 * 1000; + case "thirtySeconds": + return 30 * 1000; + case "oneMinute": + return 60 * 1000; + case "twoMinutes": + return 120 * 1000; + case "fiveMinutes": + return 300 * 1000; + default: + return 300 * 1000; // Default to 5 minutes + } + } + async clearPendingClipboard() { if (this.clearClipboardTimeoutFunction != null) { await this.clearClipboardTimeoutFunction();