Преглед на файлове

Sort contacts by display name before storing them

Danilo Bargen преди 7 години
родител
ревизия
1a60b7a99e
променени са 1 файла, в които са добавени 7 реда и са изтрити 0 реда
  1. 7 0
      src/threema/container.ts

+ 7 - 0
src/threema/container.ts

@@ -120,6 +120,13 @@ class Receivers implements threema.Container.Receivers {
      * Set contacts.
      */
     public setContacts(data: threema.ContactReceiver[]): void {
+        data.sort((a: threema.Receiver, b: threema.Receiver) => {
+            if (a.id.startsWith('*') && !b.id.startsWith('*')) { return 1; }
+            if (!a.id.startsWith('*') && b.id.startsWith('*')) { return -1; }
+            if (a.displayName < b.displayName) { return -1; }
+            if (a.displayName > b.displayName) { return 1; }
+            return 0;
+        });
         this.contacts = new Map(data.map((c) => {
             c.type = 'contact';
             return [c.id, c];