From 8d61f22ba4279b632a58381d128d97a6fe1d793f Mon Sep 17 00:00:00 2001 From: mARTin-B78 Date: Tue, 6 Oct 2026 12:59:44 +0200 Subject: [PATCH] fix(sonar): merge identical branches in segment merge (javascript:S1871) Co-Authored-By: Claude Sonnet 5.5 --- static/js/audiobook-cast.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/static/js/audiobook-cast.js b/static/js/audiobook-cast.js index ad0c89d..9fdfd52 100644 --- a/static/js/audiobook-cast.js +++ b/static/js/audiobook-cast.js @@ -2314,8 +2314,7 @@ STRIKTE FORMAT- UND TEXTREGELN: const _abIsNarrSeg = (s) => s?.type !== 'dialogue' || !s.speaker || /^Narrator$/i.test(s.speaker); const _abMergedSegment = (a, b) => { let base = a; - if (_abIsUnknownSeg(a) && !_abIsUnknownSeg(b)) base = b; - else if (_abIsNarrSeg(a) && !_abIsNarrSeg(b)) base = b; + if ((_abIsUnknownSeg(a) && !_abIsUnknownSeg(b)) || (_abIsNarrSeg(a) && !_abIsNarrSeg(b))) base = b; const type = _abIsNarrSeg(base) ? 'narration' : 'dialogue'; const speaker = type === 'narration' ? 'Narrator' : (base.speaker || 'Unknown'); return { @@ -2349,9 +2348,8 @@ STRIKTE FORMAT- UND TEXTREGELN: active.arr.splice(leftIdx, 2, merged); if (active.key === 'segments') _audiobook.segments = active.arr; else _audiobook.liveSegments = active.arr; - if (!leftRow || !rightRow || leftRow.parentNode !== rightRow.parentNode) { - _abRedrawSegmentsChunked(active.arr); - } else if (!_abPatchRowRange([leftRow, rightRow], [merged], active.arr)) { + if (!leftRow || !rightRow || leftRow.parentNode !== rightRow.parentNode + || !_abPatchRowRange([leftRow, rightRow], [merged], active.arr)) { _abRedrawSegmentsChunked(active.arr); } _abPersistManualEdit();