mirror of
https://github.com/bitwarden/browser
synced 2026-02-18 10:23:52 +00:00
Fix archive premium badge & fix strict ts errors. (#18440)
Fixes the archive badge to be visible by placing it in the end slot. Resolves strict TS errors.
This commit is contained in:
committed by
jaasen-livefront
parent
6604e9c847
commit
ad52e98dbe
@@ -12,7 +12,7 @@ import { VaultFilter, CollectionFilter } from "@bitwarden/vault";
|
||||
imports: [A11yTitleDirective, NavigationModule],
|
||||
})
|
||||
export class CollectionFilterComponent {
|
||||
protected readonly collection = input<TreeNode<CollectionFilter>>();
|
||||
protected readonly collection = input.required<TreeNode<CollectionFilter>>();
|
||||
protected readonly activeFilter = input<VaultFilter>();
|
||||
|
||||
protected readonly displayName = computed<string>(() => {
|
||||
|
||||
@@ -13,7 +13,7 @@ import { VaultFilter, FolderFilter } from "@bitwarden/vault";
|
||||
imports: [A11yTitleDirective, NavigationModule, IconButtonModule, I18nPipe],
|
||||
})
|
||||
export class FolderFilterComponent {
|
||||
protected readonly folder = input<TreeNode<FolderFilter>>();
|
||||
protected readonly folder = input.required<TreeNode<FolderFilter>>();
|
||||
protected readonly activeFilter = input<VaultFilter>();
|
||||
protected onEditFolder = output<FolderFilter>();
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { Component, computed, input, inject } from "@angular/core";
|
||||
|
||||
import { DisplayMode } from "@bitwarden/angular/vault/vault-filter/models/display-mode";
|
||||
@@ -20,7 +22,7 @@ export class OrganizationFilterComponent {
|
||||
private vaultFilterService: VaultFilterServiceAbstraction = inject(VaultFilterServiceAbstraction);
|
||||
|
||||
protected readonly hide = input(false);
|
||||
protected readonly organizations = input<TreeNode<OrganizationFilter>>();
|
||||
protected readonly organizations = input.required<TreeNode<OrganizationFilter>>();
|
||||
protected readonly activeFilter = input<VaultFilter>();
|
||||
protected readonly activeOrganizationDataOwnership = input<boolean>(false);
|
||||
protected readonly activeSingleOrganizationPolicy = input<boolean>(false);
|
||||
@@ -56,7 +58,6 @@ export class OrganizationFilterComponent {
|
||||
if (!organization.node.enabled) {
|
||||
this.toastService.showToast({
|
||||
variant: "error",
|
||||
title: null,
|
||||
message: this.i18nService.t("disabledOrganizationFilterError"),
|
||||
});
|
||||
return;
|
||||
|
||||
@@ -6,10 +6,13 @@
|
||||
[text]="archiveFilter.name | i18n"
|
||||
[attr.aria-pressed]="activeFilter()?.isArchived"
|
||||
[appA11yTitle]="archiveFilter.name | i18n"
|
||||
/>
|
||||
@if (!(canArchive$ | async)) {
|
||||
<app-premium-badge />
|
||||
}
|
||||
>
|
||||
@if (!(canArchive$ | async)) {
|
||||
<ng-container slot="end">
|
||||
<app-premium-badge />
|
||||
</ng-container>
|
||||
}
|
||||
</bit-nav-item>
|
||||
}
|
||||
<bit-nav-item
|
||||
[icon]="trashFilter.icon"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { CommonModule } from "@angular/common";
|
||||
import { Component, viewChild, input, inject } from "@angular/core";
|
||||
import { combineLatest, firstValueFrom, map, switchMap } from "rxjs";
|
||||
@@ -23,7 +25,10 @@ export class StatusFilterComponent {
|
||||
private cipherArchiveService: CipherArchiveService = inject(CipherArchiveService);
|
||||
|
||||
protected readonly hideArchive = input(false);
|
||||
protected readonly activeFilter = input<VaultFilter>();
|
||||
protected readonly activeFilter = input.required<VaultFilter>();
|
||||
|
||||
private readonly premiumBadgeComponent = viewChild(PremiumBadgeComponent);
|
||||
|
||||
protected readonly archiveFilter: CipherTypeFilter = {
|
||||
id: "archive",
|
||||
name: "archiveNoun",
|
||||
@@ -38,7 +43,7 @@ export class StatusFilterComponent {
|
||||
};
|
||||
|
||||
protected applyFilter(filterType: CipherStatus) {
|
||||
let filter: CipherTypeFilter = null;
|
||||
let filter: CipherTypeFilter | null = null;
|
||||
if (filterType === "archive") {
|
||||
filter = this.archiveFilter;
|
||||
} else if (filterType === "trash") {
|
||||
@@ -50,8 +55,6 @@ export class StatusFilterComponent {
|
||||
}
|
||||
}
|
||||
|
||||
private readonly premiumBadgeComponent = viewChild.required(PremiumBadgeComponent);
|
||||
|
||||
private userId$ = this.accountService.activeAccount$.pipe(getUserId);
|
||||
protected canArchive$ = this.userId$.pipe(
|
||||
switchMap((userId) => this.cipherArchiveService.userCanArchive$(userId)),
|
||||
@@ -71,7 +74,7 @@ export class StatusFilterComponent {
|
||||
if (canArchive || hasArchivedCiphers) {
|
||||
this.applyFilter("archive");
|
||||
} else {
|
||||
await this.premiumBadgeComponent().promptForPremium(event);
|
||||
await this.premiumBadgeComponent()?.promptForPremium(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ export class TypeFilterComponent {
|
||||
RestrictedItemTypesService,
|
||||
);
|
||||
|
||||
protected readonly cipherTypes = input<TreeNode<CipherTypeFilter>>();
|
||||
protected readonly cipherTypes = input.required<TreeNode<CipherTypeFilter>>();
|
||||
protected readonly activeFilter = input<VaultFilter>();
|
||||
|
||||
protected applyTypeFilter(event: Event, cipherType: TreeNode<CipherTypeFilter>) {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { CommonModule } from "@angular/common";
|
||||
import { Component, inject, OnInit, output, computed, signal } from "@angular/core";
|
||||
import { firstValueFrom, Observable, Subject, takeUntil } from "rxjs";
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { CommonModule } from "@angular/common";
|
||||
import { ChangeDetectorRef, Component, NgZone, OnDestroy, OnInit, ViewChild } from "@angular/core";
|
||||
import { ActivatedRoute, Router } from "@angular/router";
|
||||
|
||||
Reference in New Issue
Block a user