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:
@@ -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 */
|
||||
|
||||
@@ -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),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user