Fix acceptance criteria keyboard editing

This commit is contained in:
2026-07-18 21:43:46 +02:00
parent 84655b1e79
commit 67b446134b
2 changed files with 30 additions and 14 deletions
@@ -115,8 +115,14 @@ const rememberText = (index: number): void => {
const commitText = (index: number): void => { const commitText = (index: number): void => {
if (skippedBlurIndex.value === index) { if (skippedBlurIndex.value === index) {
skippedBlurIndex.value = null; skippedBlurIndex.value = null;
editingIndex.value = null;
originalText.value = null; if (editingIndex.value === index) {
editingIndex.value = null;
}
if (originalText.value?.index === index) {
originalText.value = null;
}
return; return;
} }
@@ -200,9 +206,10 @@ const insertAfterCurrent = (index: number, event: KeyboardEvent): void => {
const result = addAcceptanceCriterionAfter(committedItems, index); const result = addAcceptanceCriterionAfter(committedItems, index);
originalText.value = null; originalText.value = null;
skippedBlurIndex.value = index;
emitUpdate(result.items); emitUpdate(result.items);
emit('commit', { items: committedItems, source: 'text' });
focusRow(result.index); focusRow(result.index);
emit('commit', { items: committedItems, source: 'text' });
}; };
const toggleCriterion = (index: number, event: Event): void => { const toggleCriterion = (index: number, event: Event): void => {
@@ -223,17 +230,29 @@ const toggleCriterion = (index: number, event: Event): void => {
}; };
const indentCriterion = (index: number): void => { const indentCriterion = (index: number): void => {
emitCommit( const items = indentAcceptanceCriterionSubtree(props.modelValue, index);
indentAcceptanceCriterionSubtree(props.modelValue, index),
'indent', if (props.modelValue[index]?.text.trim() === '') {
); emitUpdate(items);
focusRow(index);
return;
}
emitCommit(items, 'indent');
}; };
const outdentCriterion = (index: number): void => { const outdentCriterion = (index: number): void => {
emitCommit( const items = outdentAcceptanceCriterionSubtree(props.modelValue, index);
outdentAcceptanceCriterionSubtree(props.modelValue, index),
'indent', if (props.modelValue[index]?.text.trim() === '') {
); emitUpdate(items);
focusRow(index);
return;
}
emitCommit(items, 'indent');
}; };
const moveCriterion = (index: number, direction: 'down' | 'up'): void => { const moveCriterion = (index: number, direction: 'down' | 'up'): void => {
-3
View File
@@ -878,9 +878,6 @@ const formatDateTime = (value: string): string => {
<AcceptanceCriteriaEditor <AcceptanceCriteriaEditor
v-model="form.acceptance_criteria" v-model="form.acceptance_criteria"
:editable="canEditTicket" :editable="canEditTicket"
:disabled="
savingField === 'acceptance_criteria'
"
:save-state=" :save-state="
saveStateFor('acceptance_criteria') saveStateFor('acceptance_criteria')
" "