mirror of
https://github.com/bitwarden/browser
synced 2025-12-18 17:23:37 +00:00
[PM-5568] Implement Badge Settings state provider (#8112)
* create badge settings state provider * replace state service get/set disableBadgeCounter with badge settings service equivalent * migrate disableBadgeCounter account setting to badge settings state provider * cleanup and address PR suggestions
This commit is contained in:
31
libs/common/src/autofill/services/badge-settings.service.ts
Normal file
31
libs/common/src/autofill/services/badge-settings.service.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { map, Observable } from "rxjs";
|
||||
|
||||
import {
|
||||
BADGE_SETTINGS_DISK,
|
||||
ActiveUserState,
|
||||
KeyDefinition,
|
||||
StateProvider,
|
||||
} from "../../platform/state";
|
||||
|
||||
const ENABLE_BADGE_COUNTER = new KeyDefinition(BADGE_SETTINGS_DISK, "enableBadgeCounter", {
|
||||
deserializer: (value: boolean) => value ?? true,
|
||||
});
|
||||
|
||||
export abstract class BadgeSettingsServiceAbstraction {
|
||||
enableBadgeCounter$: Observable<boolean>;
|
||||
setEnableBadgeCounter: (newValue: boolean) => Promise<void>;
|
||||
}
|
||||
|
||||
export class BadgeSettingsService implements BadgeSettingsServiceAbstraction {
|
||||
private enableBadgeCounterState: ActiveUserState<boolean>;
|
||||
readonly enableBadgeCounter$: Observable<boolean>;
|
||||
|
||||
constructor(private stateProvider: StateProvider) {
|
||||
this.enableBadgeCounterState = this.stateProvider.getActive(ENABLE_BADGE_COUNTER);
|
||||
this.enableBadgeCounter$ = this.enableBadgeCounterState.state$.pipe(map((x) => x ?? true));
|
||||
}
|
||||
|
||||
async setEnableBadgeCounter(newValue: boolean): Promise<void> {
|
||||
await this.enableBadgeCounterState.update(() => newValue);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user