From 27ef52a9c9224bd3d8e5613fb8dceb305fc7511b Mon Sep 17 00:00:00 2001
From: Anna No <anna.no@xored.com>
Date: Thu, 2 Jun 2022 14:59:59 +0700
Subject: [PATCH] Add Contact info presenter (#1985)

* Add Contact info presenter

Signed-off-by: Anna No <anna.no@xored.com>

* Update error message

Signed-off-by: Anna No <anna.no@xored.com>

* Add Contact info presenter

Signed-off-by: Anna No <anna.no@xored.com>

* fix formatting

Signed-off-by: Anna No <anna.no@xored.com>
---
 models/contact/src/index.ts         | 4 ++++
 plugins/view-resources/src/utils.ts | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts
index d787a45bcb..1497924f80 100644
--- a/models/contact/src/index.ts
+++ b/models/contact/src/index.ts
@@ -201,6 +201,10 @@ export function createModel (builder: Builder): void {
     editor: contact.component.PersonEditor
   })
 
+  builder.mixin(contact.class.Channel, core.class.Class, view.mixin.AttributePresenter, {
+    presenter: contact.component.ChannelsPresenter
+  })
+
   builder.mixin(contact.class.Channel, core.class.Class, view.mixin.CollectionPresenter, {
     presenter: contact.component.ChannelsPresenter
   })
diff --git a/plugins/view-resources/src/utils.ts b/plugins/view-resources/src/utils.ts
index 8af29d96d8..cc8d2abc71 100644
--- a/plugins/view-resources/src/utils.ts
+++ b/plugins/view-resources/src/utils.ts
@@ -61,7 +61,9 @@ export async function getObjectPresenter (
     mixinClazz = hierarchy.getClass(mixinClazz.extends)
   }
   if (presenterMixin.presenter === undefined) {
-    throw new Error('object presenter not found for ' + JSON.stringify(preserveKey))
+    throw new Error(
+      `object presenter not found for class=${_class}, mixin=${mixin}, preserve key ${JSON.stringify(preserveKey)}`
+    )
   }
   const presenter = await getResource(presenterMixin.presenter)
   const key = preserveKey.sortingKey ?? preserveKey.key