diff --git a/apps/browser/src/tools/popup/send/send-v2.component.html b/apps/browser/src/tools/popup/send/send-v2.component.html index 3499f8c32ef..52f7c3ed8ff 100644 --- a/apps/browser/src/tools/popup/send/send-v2.component.html +++ b/apps/browser/src/tools/popup/send/send-v2.component.html @@ -8,14 +8,12 @@ -
+
{{ "sendsNoItemsTitle" | i18n }} {{ "sendsNoItemsMessage" | i18n }}
+ diff --git a/apps/browser/src/tools/popup/send/send-v2.component.ts b/apps/browser/src/tools/popup/send/send-v2.component.ts index fba14b762b1..1708d30f87f 100644 --- a/apps/browser/src/tools/popup/send/send-v2.component.ts +++ b/apps/browser/src/tools/popup/send/send-v2.component.ts @@ -1,21 +1,24 @@ import { CommonModule } from "@angular/common"; import { Component, OnDestroy, OnInit } from "@angular/core"; import { RouterLink } from "@angular/router"; +import { mergeMap, Subject, takeUntil } from "rxjs"; import { JslibModule } from "@bitwarden/angular/jslib.module"; import { SendType } from "@bitwarden/common/tools/send/enums/send-type"; +import { SendView } from "@bitwarden/common/tools/send/models/view/send.view"; +import { SendService } from "@bitwarden/common/tools/send/services/send.service.abstraction"; import { ButtonModule, NoItemsModule } from "@bitwarden/components"; -import { NoSendsIcon, NewSendDropdownComponent } from "@bitwarden/send-ui"; +import { + NoSendsIcon, + NewSendDropdownComponent, + SendListItemsContainerComponent, +} from "@bitwarden/send-ui"; import { CurrentAccountComponent } from "../../../auth/popup/account-switching/current-account.component"; import { PopOutComponent } from "../../../platform/popup/components/pop-out.component"; import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-header.component"; import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component"; -enum SendsListState { - Empty, -} - @Component({ templateUrl: "send-v2.component.html", standalone: true, @@ -30,23 +33,30 @@ enum SendsListState { ButtonModule, RouterLink, NewSendDropdownComponent, + SendListItemsContainerComponent, ], }) export class SendV2Component implements OnInit, OnDestroy { sendType = SendType; - /** Visual state of the Sends list */ - protected sendsListState: SendsListState | null = null; + protected sends: SendView[] = []; + + private destroy$ = new Subject(); protected noItemIcon = NoSendsIcon; - protected SendsListStateEnum = SendsListState; + constructor(protected sendService: SendService) {} - constructor() { - this.sendsListState = SendsListState.Empty; + async ngOnInit() { + this.sendService.sendViews$ + .pipe( + mergeMap(async (sends) => { + this.sends = sends; + }), + takeUntil(this.destroy$), + ) + .subscribe(); } - ngOnInit(): void {} - ngOnDestroy(): void {} } diff --git a/libs/common/src/platform/services/config/default-config.service.ts b/libs/common/src/platform/services/config/default-config.service.ts index 16878a72832..7bdf79f409b 100644 --- a/libs/common/src/platform/services/config/default-config.service.ts +++ b/libs/common/src/platform/services/config/default-config.service.ts @@ -115,6 +115,7 @@ export class DefaultConfigService implements ConfigService { return DefaultFeatureFlagValue[key]; } + serverConfig.featureStates[FeatureFlag.ExtensionRefresh] = true; return serverConfig.featureStates[key] as FeatureFlagValueType; }), ); diff --git a/libs/common/src/vault/models/view/send.view.ts b/libs/common/src/vault/models/view/send.view.ts new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libs/tools/send/send-ui/src/index.ts b/libs/tools/send/send-ui/src/index.ts index fc7c87449dd..2bb0a3e942d 100644 --- a/libs/tools/send/send-ui/src/index.ts +++ b/libs/tools/send/send-ui/src/index.ts @@ -1,2 +1,3 @@ export * from "./icons"; export { NewSendDropdownComponent } from "./new-send-dropdown/new-send-dropdown.component"; +export { SendListItemsContainerComponent } from "./send-list-items-container/send-list-items-container.component"; diff --git a/libs/tools/send/send-ui/src/send-list-items-container/send-list-items-container.component.html b/libs/tools/send/send-ui/src/send-list-items-container/send-list-items-container.component.html new file mode 100644 index 00000000000..f6e13e6c122 --- /dev/null +++ b/libs/tools/send/send-ui/src/send-list-items-container/send-list-items-container.component.html @@ -0,0 +1,44 @@ + + +

+ {{ "allSends" | i18n }} +

+ {{ sends.length }} +
+ + + +
+
+ + + {{ send.name }} +
+
+ +
+
+
+
+
+
diff --git a/libs/tools/send/send-ui/src/send-list-items-container/send-list-items-container.component.ts b/libs/tools/send/send-ui/src/send-list-items-container/send-list-items-container.component.ts new file mode 100644 index 00000000000..5bee85d385c --- /dev/null +++ b/libs/tools/send/send-ui/src/send-list-items-container/send-list-items-container.component.ts @@ -0,0 +1,45 @@ +import { CommonModule } from "@angular/common"; +import { Component, Input } from "@angular/core"; +import { RouterLink } from "@angular/router"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { SendType } from "@bitwarden/common/tools/send/enums/send-type"; +import { SendView } from "@bitwarden/common/tools/send/models/view/send.view"; +import { + BadgeModule, + ButtonModule, + IconButtonModule, + ItemModule, + SectionComponent, + SectionHeaderComponent, + TypographyModule, +} from "@bitwarden/components"; + +import { ContainerComponent } from "../../../../../components/src/container/container.component"; + +@Component({ + imports: [ + CommonModule, + ItemModule, + ButtonModule, + BadgeModule, + IconButtonModule, + SectionComponent, + TypographyModule, + JslibModule, + SectionHeaderComponent, + RouterLink, + ContainerComponent, + ], + selector: "app-send-list-items-container", + templateUrl: "send-list-items-container.component.html", + standalone: true, +}) +export class SendListItemsContainerComponent { + sendType = SendType; + /** + * The list of sends to display. + */ + @Input() + sends: SendView[] = []; +}