From 84cbc31d18db0b7c66960cdf338dee299e6e65c2 Mon Sep 17 00:00:00 2001 From: Pascal Jufer Date: Thu, 27 Jul 2023 19:51:28 +0200 Subject: [PATCH] Delay retrieving context for conditions (#19271) * Delay retrieving context for conditions * Add changeset --- .changeset/spotty-pans-kick.md | 5 +++++ .../system-interface-options/system-interface-options.vue | 4 ++-- .../field-detail-advanced-conditions.vue | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .changeset/spotty-pans-kick.md diff --git a/.changeset/spotty-pans-kick.md b/.changeset/spotty-pans-kick.md new file mode 100644 index 0000000000..1b0907631e --- /dev/null +++ b/.changeset/spotty-pans-kick.md @@ -0,0 +1,5 @@ +--- +"@directus/app": patch +--- + +Resolved browser freeze in field conditions by delaying the retrieving of field context diff --git a/app/src/interfaces/_system/system-interface-options/system-interface-options.vue b/app/src/interfaces/_system/system-interface-options/system-interface-options.vue index 51d164f481..a76d5722a1 100644 --- a/app/src/interfaces/_system/system-interface-options/system-interface-options.vue +++ b/app/src/interfaces/_system/system-interface-options/system-interface-options.vue @@ -40,7 +40,7 @@ const props = defineProps<{ interface?: string; collection?: string; disabled?: boolean; - context?: ExtensionOptionsContext; + context?: () => ExtensionOptionsContext; }>(); const emit = defineEmits<{ @@ -76,7 +76,7 @@ const optionsFields = computed(() => { if (typeof selectedInterface.value.options === 'function') { optionsObjectOrArray = selectedInterface.value.options( - props.context ?? { + props.context?.() ?? { field: { type: 'unknown', }, diff --git a/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-conditions.vue b/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-conditions.vue index fec2d0f808..129f7032bb 100644 --- a/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-conditions.vue +++ b/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-conditions.vue @@ -92,7 +92,7 @@ const repeaterFields = computed[]>(() => [ interface: 'system-interface-options', options: { interface: interfaceId.value, - context: fieldDetailStore, + context: useFieldDetailStore, }, }, },