Compare commits

...

2 Commits

Author SHA1 Message Date
Jose Olarte III 2f99d0b416 fix(components): prevent icon shrinking in PersonCard and ProjectCard 3 days ago
Jose Olarte III 9c3002f9c7 feat(EntityGrid): sort search results alphabetically 3 days ago
  1. 24
      src/components/EntityGrid.vue
  2. 4
      src/components/PersonCard.vue
  3. 2
      src/components/ProjectCard.vue

24
src/components/EntityGrid.vue

@ -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;

4
src/components/PersonCard.vue

@ -7,12 +7,12 @@ conflict detection. * * @author Matthew Raymer */
<EntityIcon <EntityIcon
v-if="person.did" v-if="person.did"
:contact="person" :contact="person"
class="!size-[2rem] border border-slate-300 bg-white overflow-hidden rounded-full" class="!size-[2rem] shrink-0 border border-slate-300 bg-white overflow-hidden rounded-full"
/> />
<font-awesome <font-awesome
v-else v-else
icon="circle-question" icon="circle-question"
class="text-slate-400 text-5xl mb-1" class="text-slate-400 text-5xl mb-1 shrink-0"
/> />
</div> </div>

2
src/components/ProjectCard.vue

@ -10,7 +10,7 @@ issuer information. * * @author Matthew Raymer */
:entity-id="project.handleId" :entity-id="project.handleId"
:icon-size="48" :icon-size="48"
:image-url="project.image" :image-url="project.image"
class="!size-[2rem] border border-slate-300 bg-white overflow-hidden rounded-full" class="!size-[2rem] shrink-0 border border-slate-300 bg-white overflow-hidden rounded-full"
/> />
<div class="overflow-hidden"> <div class="overflow-hidden">

Loading…
Cancel
Save