1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-31 08:43:54 +00:00

[pm-8458] Change to strings and update necessary logic; change default

Signed-off-by: Ben Brooks <bbrooks@bitwarden.com>
This commit is contained in:
Ben Brooks
2025-12-01 09:24:17 -08:00
parent 4a2858132d
commit bbe9050012
3 changed files with 32 additions and 11 deletions

View File

@@ -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 */

View File

@@ -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),
);
}

View File

@@ -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();