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 @@
+ 0">
+
+
+ {{ "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[] = [];
+}