From 77df2d40ecd32ff2ea6dc70b5cd2938b7e32d851 Mon Sep 17 00:00:00 2001
From: alexm <alexm@verdnatura.es>
Date: Tue, 25 Mar 2025 12:51:21 +0100
Subject: [PATCH] fix(VnLog): refs #6994 simplify value binding and improve
 descriptor handling

---
 src/components/common/VnLog.vue      | 12 +++++-------
 src/components/common/VnLogValue.vue | 24 +++++++++++++++---------
 src/stores/useDescriptorStore.js     |  2 +-
 3 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/src/components/common/VnLog.vue b/src/components/common/VnLog.vue
index 804147539..7402ceb3e 100644
--- a/src/components/common/VnLog.vue
+++ b/src/components/common/VnLog.vue
@@ -561,9 +561,7 @@ watch(
                                                                         }}:
                                                                     </span>
                                                                     <VnLogValue
-                                                                        :value="
-                                                                            value.val.val
-                                                                        "
+                                                                        :value="value.val"
                                                                         :name="value.name"
                                                                     />
                                                                 </QItem>
@@ -616,7 +614,7 @@ watch(
                                                         {{ prop.nameI18n }}:
                                                     </span>
                                                     <VnLogValue
-                                                        :value="prop.val.val"
+                                                        :value="prop.val"
                                                         :name="prop.name"
                                                     />
                                                     <span
@@ -647,7 +645,7 @@ watch(
                                                     </span>
                                                     <span v-if="log.action == 'update'">
                                                         <VnLogValue
-                                                            :value="prop.old.val"
+                                                            :value="prop.old"
                                                             :name="prop.name"
                                                         />
                                                         <span
@@ -658,7 +656,7 @@ watch(
                                                         </span>
                                                         →
                                                         <VnLogValue
-                                                            :value="prop.val.val"
+                                                            :value="prop.val"
                                                             :name="prop.name"
                                                         />
                                                         <span
@@ -670,7 +668,7 @@ watch(
                                                     </span>
                                                     <span v-else="prop.old.val">
                                                         <VnLogValue
-                                                            :value="prop.val.val"
+                                                            :value="prop.val"
                                                             :name="prop.name"
                                                         />
                                                         <span
diff --git a/src/components/common/VnLogValue.vue b/src/components/common/VnLogValue.vue
index df0be4011..3f1617ce7 100644
--- a/src/components/common/VnLogValue.vue
+++ b/src/components/common/VnLogValue.vue
@@ -5,18 +5,24 @@ import { computed } from 'vue';
 const descriptorStore = useDescriptorStore();
 
 const $props = defineProps({
-    name: { type: [String], default: undefined },
+    value: { type: Object, default: () => {} },
+    name: { type: String, default: undefined },
 });
 
 const descriptor = computed(() => descriptorStore.has($props.name));
 </script>
 <template>
-    <VnJsonValue v-bind="$attrs" />
-    <QIcon
-        name="launch"
-        class="link"
-        v-if="$attrs.value && descriptor"
-        :data-cy="'iconLaunch-' + $props.name"
-    />
-    <component :is="descriptor" :id="$attrs.value" v-if="$attrs.value && descriptor" />
+    <VnJsonValue :value="value.val" />
+    <span
+        v-if="(value.id || typeof value.val == 'number') && descriptor"
+        style="margin-left: 2px"
+    >
+        <QIcon
+            name="launch"
+            class="link"
+            :data-cy="'iconLaunch-' + $props.name"
+            style="padding-bottom: 2px"
+        />
+        <component :is="descriptor" :id="value.id ?? value.val" />
+    </span>
 </template>
diff --git a/src/stores/useDescriptorStore.js b/src/stores/useDescriptorStore.js
index a5b83a42e..be342b016 100644
--- a/src/stores/useDescriptorStore.js
+++ b/src/stores/useDescriptorStore.js
@@ -11,7 +11,7 @@ export const useDescriptorStore = defineStore('descriptorStore', () => {
         const files = import.meta.glob(`/src/**/*DescriptorProxy.vue`);
         const moduleParser = {
             account: 'user',
-            client: 'customer',
+            customer: 'client',
         };
         for (const file in files) {
             const name = file.split('/').at(-1).slice(0, -19).toLowerCase();