+
+
+
{{ "send" | i18n }}
@@ -79,29 +77,38 @@
-
+
-
-
-
-
-
-
+
+
{{ "loading" | i18n }}
- {{ "noSendsInList" | i18n }}
-
+
+ {{ "sendsNoItemsTitle" | i18n }}
+ {{ "sendsNoItemsMessage" | i18n }}
+
+
-
diff --git a/apps/web/src/app/tools/send/send.component.ts b/apps/web/src/app/tools/send/send.component.ts
index 616abaf4f2..157b64da59 100644
--- a/apps/web/src/app/tools/send/send.component.ts
+++ b/apps/web/src/app/tools/send/send.component.ts
@@ -13,20 +13,36 @@ import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/pl
import { SendView } from "@bitwarden/common/tools/send/models/view/send.view";
import { SendApiService } from "@bitwarden/common/tools/send/services/send-api.service.abstraction";
import { SendService } from "@bitwarden/common/tools/send/services/send.service.abstraction";
-import { Icons } from "@bitwarden/components";
+import { NoItemsModule, SearchModule, TableDataSource } from "@bitwarden/components";
+
+import { SharedModule } from "../../shared";
import { AddEditComponent } from "./add-edit.component";
+import { NoSend } from "./icons/no-send.icon";
const BroadcasterSubscriptionId = "SendComponent";
@Component({
selector: "app-send",
+ standalone: true,
+ imports: [SharedModule, SearchModule, NoItemsModule],
templateUrl: "send.component.html",
})
export class SendComponent extends BaseSendComponent {
@ViewChild("sendAddEdit", { read: ViewContainerRef, static: true })
sendAddEditModalRef: ViewContainerRef;
- noItemIcon = Icons.Search;
+ noItemIcon = NoSend;
+
+ override set filteredSends(filteredSends: SendView[]) {
+ super.filteredSends = filteredSends;
+ this.dataSource.data = filteredSends;
+ }
+
+ override get filteredSends() {
+ return super.filteredSends;
+ }
+
+ protected dataSource = new TableDataSource();
constructor(
sendService: SendService,
diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json
index 46da473dcd..86641c9f60 100644
--- a/apps/web/src/locales/en/messages.json
+++ b/apps/web/src/locales/en/messages.json
@@ -6955,6 +6955,14 @@
"selectedRegionFlag": {
"message": "Selected region flag"
},
+ "sendsNoItemsTitle": {
+ "message": "No active Sends",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
+ "sendsNoItemsMessage": {
+ "message": "Use Send to securely share encrypted information with anyone.",
+ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
+ },
"inviteUsers": {
"message": "Invite Users"
},
diff --git a/libs/angular/src/tools/send/send.component.ts b/libs/angular/src/tools/send/send.component.ts
index c3215e9818..6064c09ad2 100644
--- a/libs/angular/src/tools/send/send.component.ts
+++ b/libs/angular/src/tools/send/send.component.ts
@@ -25,11 +25,9 @@ export class SendComponent implements OnInit, OnDestroy {
expired = false;
type: SendType = null;
sends: SendView[] = [];
- filteredSends: SendView[] = [];
searchText: string;
selectedType: SendType;
selectedAll: boolean;
- searchPlaceholder: string;
filter: (cipher: SendView) => boolean;
searchPending = false;
hasSearched = false; // search() function called - returns true if text qualifies for search
@@ -41,6 +39,15 @@ export class SendComponent implements OnInit, OnDestroy {
private searchTimeout: any;
private destroy$ = new Subject();
+ private _filteredSends: SendView[];
+
+ get filteredSends(): SendView[] {
+ return this._filteredSends;
+ }
+
+ set filteredSends(filteredSends: SendView[]) {
+ this._filteredSends = filteredSends;
+ }
constructor(
protected sendService: SendService,
{{ "send" | i18n }}
@@ -79,29 +77,38 @@
- - |
{{ "noSendsInList" | i18n }}
- +