mirror of
https://github.com/bitwarden/browser
synced 2025-12-06 00:13:28 +00:00
* Use account service to track accounts and active account * Remove state service active account Observables. * Add email verified to account service * Do not store account info on logged out accounts * Add account activity tracking to account service * Use last account activity from account service * migrate or replicate account service data * Add `AccountActivityService` that handles storing account last active data * Move active and next active user to account service * Remove authenticated accounts from state object * Fold account activity into account service * Fix builds * Fix desktop app switch * Fix logging out non active user * Expand helper to handle new authenticated accounts location * Prefer view observable to tons of async pipes * Fix `npm run test:types` * Correct user activity sorting test * Be more precise about log out messaging * Fix dev compare errors All stored values are serializable, the next step wasn't necessary and was erroring on some types that lack `toString`. * If the account in unlocked on load of lock component, navigate away from lock screen * Handle no users case for auth service statuses * Specify account to switch to * Filter active account out of inactive accounts * Prefer constructor init * Improve comparator * Use helper methods internally * Fixup component tests * Clarify name * Ensure accounts object has only valid userIds * Capitalize const values * Prefer descriptive, single-responsibility guards * Update libs/common/src/state-migrations/migrate.ts Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com> * Fix merge * Add user Id validation activity for undefined was being set, which was resulting in requests for the auth status of `"undefined"` (string) userId, due to key enumeration. These changes stop that at both locations, as well as account add for good measure. --------- Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import { Component, OnDestroy, OnInit } from "@angular/core";
|
|
import { UntypedFormControl } from "@angular/forms";
|
|
import { Subscription } from "rxjs";
|
|
|
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
|
|
|
import { SearchBarService, SearchBarState } from "./search-bar.service";
|
|
|
|
@Component({
|
|
selector: "app-search",
|
|
templateUrl: "search.component.html",
|
|
})
|
|
export class SearchComponent implements OnInit, OnDestroy {
|
|
state: SearchBarState;
|
|
searchText: UntypedFormControl = new UntypedFormControl(null);
|
|
|
|
private activeAccountSubscription: Subscription;
|
|
|
|
constructor(
|
|
private searchBarService: SearchBarService,
|
|
private accountService: AccountService,
|
|
) {
|
|
// eslint-disable-next-line rxjs-angular/prefer-takeuntil
|
|
this.searchBarService.state$.subscribe((state) => {
|
|
this.state = state;
|
|
});
|
|
|
|
// eslint-disable-next-line rxjs-angular/prefer-takeuntil
|
|
this.searchText.valueChanges.subscribe((value) => {
|
|
this.searchBarService.setSearchText(value);
|
|
});
|
|
}
|
|
|
|
ngOnInit() {
|
|
// eslint-disable-next-line rxjs-angular/prefer-takeuntil
|
|
this.activeAccountSubscription = this.accountService.activeAccount$.subscribe((_) => {
|
|
this.searchBarService.setSearchText("");
|
|
this.searchText.patchValue("");
|
|
});
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
this.activeAccountSubscription.unsubscribe();
|
|
}
|
|
}
|