diff --git a/frontend/app/components/ComponentItem.vue b/frontend/app/components/ComponentItem.vue
index cac5db8..cef9d28 100644
--- a/frontend/app/components/ComponentItem.vue
+++ b/frontend/app/components/ComponentItem.vue
@@ -203,6 +203,19 @@
@field-blur="updateComponentCustomField"
/>
+
+
@@ -319,6 +332,9 @@ import {
import { useEntityDocuments } from '~/composables/useEntityDocuments'
import { useEntityProductDisplay } from '~/composables/useEntityProductDisplay'
import { useEntityCustomFields } from '~/composables/useEntityCustomFields'
+import { mergeFieldDefinitionsWithValues, dedupeMergedFields } from '~/shared/utils/entityCustomFieldLogic'
+import { useCustomFields } from '~/composables/useCustomFields'
+import { useToast } from '~/composables/useToast'
const props = defineProps({
component: { type: Object, required: true },
@@ -358,6 +374,40 @@ const {
updateCustomField: updateComponentCustomField,
} = useEntityCustomFields({ entity: () => props.component, entityType: 'composant' })
+const { upsertCustomFieldValue } = useCustomFields()
+const { showSuccess, showError } = useToast()
+
+const mergedContextFields = computed(() => {
+ const definitions = props.component?.contextCustomFields ?? []
+ const values = props.component?.contextCustomFieldValues ?? []
+ if (!definitions.length && !values.length) return []
+ return dedupeMergedFields(
+ mergeFieldDefinitionsWithValues(definitions, values),
+ )
+})
+
+const updateContextCustomField = async (field) => {
+ const linkId = props.component?.linkId
+ if (!linkId || !field) return
+
+ const customFieldId = field.customFieldId || field.customField?.id
+ if (!customFieldId) return
+
+ const result = await upsertCustomFieldValue(
+ customFieldId,
+ 'machineComponentLink',
+ linkId,
+ field.value ?? '',
+ )
+
+ if (result.success) {
+ showSuccess(`Champ contextuel "${field.name || field.customField?.name}" mis à jour`)
+ }
+ else {
+ showError(`Erreur lors de la mise à jour du champ contextuel`)
+ }
+}
+
// --- Document edit modal ---
const editingDocument = ref(null)
const editModalVisible = ref(false)