feat(EntityGrid): sort search results alphabetically
Sort search results alphabetically while preserving original order for default list when no search term is present.
This commit is contained in:
@@ -377,21 +377,29 @@ export default class EntityGrid extends Vue {
|
|||||||
const searchLower = this.searchTerm.toLowerCase().trim();
|
const searchLower = this.searchTerm.toLowerCase().trim();
|
||||||
|
|
||||||
if (this.entityType === "people") {
|
if (this.entityType === "people") {
|
||||||
this.filteredEntities = (this.entities as Contact[]).filter(
|
this.filteredEntities = (this.entities as Contact[])
|
||||||
(contact: Contact) => {
|
.filter((contact: Contact) => {
|
||||||
const name = contact.name?.toLowerCase() || "";
|
const name = contact.name?.toLowerCase() || "";
|
||||||
const did = contact.did.toLowerCase();
|
const did = contact.did.toLowerCase();
|
||||||
return name.includes(searchLower) || did.includes(searchLower);
|
return name.includes(searchLower) || did.includes(searchLower);
|
||||||
},
|
})
|
||||||
);
|
.sort((a: Contact, b: Contact) => {
|
||||||
|
// Sort alphabetically by name, falling back to DID if name is missing
|
||||||
|
const nameA = (a.name || a.did).toLowerCase();
|
||||||
|
const nameB = (b.name || b.did).toLowerCase();
|
||||||
|
return nameA.localeCompare(nameB);
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
this.filteredEntities = (this.entities as PlanData[]).filter(
|
this.filteredEntities = (this.entities as PlanData[])
|
||||||
(project: PlanData) => {
|
.filter((project: PlanData) => {
|
||||||
const name = project.name?.toLowerCase() || "";
|
const name = project.name?.toLowerCase() || "";
|
||||||
const handleId = project.handleId.toLowerCase();
|
const handleId = project.handleId.toLowerCase();
|
||||||
return name.includes(searchLower) || handleId.includes(searchLower);
|
return name.includes(searchLower) || handleId.includes(searchLower);
|
||||||
},
|
})
|
||||||
);
|
.sort((a: PlanData, b: PlanData) => {
|
||||||
|
// Sort alphabetically by name
|
||||||
|
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
this.isSearching = false;
|
this.isSearching = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user