SYNC: table cell view - single click

This commit is contained in:
SPRINX0\prochazka
2025-12-12 16:40:05 +01:00
committed by Diflow
parent 6b66c273b4
commit 6c317b6e64

View File

@@ -95,6 +95,15 @@
return null; return null;
} }
function handleClick(field) {
if (!editable || !grider) return;
if (isJsonValue(field.value) && !field.hasMultipleValues) {
openEditModal(field);
return;
}
startEditing(field);
}
function handleDoubleClick(field) { function handleDoubleClick(field) {
if (!editable || !grider) return; if (!editable || !grider) return;
if (isJsonValue(field.value) && !field.hasMultipleValues) { if (isJsonValue(field.value) && !field.hasMultipleValues) {
@@ -130,12 +139,15 @@
event.preventDefault(); event.preventDefault();
break; break;
case keycodes.tab: case keycodes.tab:
case keycodes.upArrow:
case keycodes.downArrow:
const reverse = event.keyCode === keycodes.upArrow || (event.keyCode === keycodes.tab && event.shiftKey);
if (isChangedRef.get()) { if (isChangedRef.get()) {
saveValue(field); saveValue(field);
} }
editingColumn = null; editingColumn = null;
event.preventDefault(); event.preventDefault();
moveToNextField(field, event.shiftKey); moveToNextField(field, reverse)
break; break;
} }
} }
@@ -231,7 +243,7 @@
{#each filteredFields as field (field.uniqueName)} {#each filteredFields as field (field.uniqueName)}
<div class="field"> <div class="field">
<div class="field-name"><ColumnLabel {...field} showDataType /></div> <div class="field-name"><ColumnLabel {...field} showDataType /></div>
<div class="field-value" class:editable on:dblclick={() => handleDoubleClick(field)}> <div class="field-value" class:editable on:click={() => handleClick(field)}>
{#if editingColumn === field.uniqueName} {#if editingColumn === field.uniqueName}
<div class="editor-wrapper"> <div class="editor-wrapper">
<input <input
@@ -337,10 +349,6 @@
cursor: text; cursor: text;
} }
.field-value.editable:hover {
background: var(--theme-bg-hover);
}
.editor-wrapper { .editor-wrapper {
display: flex; display: flex;
align-items: center; align-items: center;