diff --git a/apps/desktop/src/components/grid/DataGrid.vue b/apps/desktop/src/components/grid/DataGrid.vue index baa6158c25..a859d61db5 100644 --- a/apps/desktop/src/components/grid/DataGrid.vue +++ b/apps/desktop/src/components/grid/DataGrid.vue @@ -67,6 +67,7 @@ import { Tabs, TabsContent } from "@/components/ui/tabs"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import ErrorBanner from "@/components/ui/ErrorBanner.vue"; import DangerConfirmDialog from "@/components/editor/DangerConfirmDialog.vue"; +import DataGridValueTransform from "@/components/grid/DataGridValueTransform.vue"; import DataGridCellDetailPanel from "@/components/grid/DataGridCellDetailPanel.vue"; import DataGridPagination from "@/components/grid/DataGridPagination.vue"; import DataGridSearchBar from "@/components/grid/DataGridSearchBar.vue"; @@ -5782,6 +5783,10 @@ const showCompactDetailJson = computed(() => { // CodeMirror-based cell detail editors const valueEditorContainer = ref(); +const detailTransformOpen = ref(false); +watch([showCellDetail, activeCellDetailTab, () => activeCellDetail.value?.rowId, () => activeCellDetail.value?.colIndex], () => { + detailTransformOpen.value = false; +}); let valueDetailEditor: UseCellDetailEditorReturn | null = null; const editorThemeAccessor = () => settingsStore.editorSettings.theme; @@ -5812,7 +5817,7 @@ watch(valueEditorContainer, async (el) => { }, onEscape: () => restoreDetailOriginalValue(), onBlur: () => { - if (!detailValueDiffOpen.value) commitValueEditorEdit(); + if (!detailValueDiffOpen.value && !detailTransformOpen.value) commitValueEditorEdit(); }, editorTheme: editorThemeAccessor, appAppearance: editorAppAppearance, @@ -13204,6 +13209,14 @@ useUpdateBlocker(() => (hasPendingChanges.value || hasPendingDataEditorDraft.val
+