diff --git a/packages/web/src/celldata/TableCellView.svelte b/packages/web/src/celldata/TableCellView.svelte index ab0b56c2c..6f4f483f3 100644 --- a/packages/web/src/celldata/TableCellView.svelte +++ b/packages/web/src/celldata/TableCellView.svelte @@ -95,6 +95,15 @@ return null; } + function handleClick(field) { + if (!editable || !grider) return; + if (isJsonValue(field.value) && !field.hasMultipleValues) { + openEditModal(field); + return; + } + startEditing(field); + } + function handleDoubleClick(field) { if (!editable || !grider) return; if (isJsonValue(field.value) && !field.hasMultipleValues) { @@ -130,12 +139,15 @@ event.preventDefault(); break; case keycodes.tab: + case keycodes.upArrow: + case keycodes.downArrow: + const reverse = event.keyCode === keycodes.upArrow || (event.keyCode === keycodes.tab && event.shiftKey); if (isChangedRef.get()) { saveValue(field); } editingColumn = null; event.preventDefault(); - moveToNextField(field, event.shiftKey); + moveToNextField(field, reverse) break; } } @@ -231,7 +243,7 @@ {#each filteredFields as field (field.uniqueName)}
-
handleDoubleClick(field)}> +
handleClick(field)}> {#if editingColumn === field.uniqueName}