Skip to content

Commit bba96bb

Browse files
Fix merge queue delete: remove from neuroglancer DOM, not just store
The merge queue is scraped from neuroglancer's DOM via MutationObserver, so splicing our store array was immediately overwritten. Now clicks the neuroglancer delete button or removes the DOM node directly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 74b4cd3 commit bba96bb

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/store.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,6 +1651,27 @@ export const useSplitMergeOverlayStore = defineStore('splitMergeOverlay', () =>
16511651
}
16521652

16531653
function removeMergeSegment(index: number) {
1654+
// Remove from neuroglancer's DOM (the source of truth)
1655+
try {
1656+
const mergeEl = document.querySelector('.graphene-merge-segments');
1657+
if (mergeEl) {
1658+
const submissions = mergeEl.querySelectorAll('.graphene-merge-segments-submission');
1659+
const sub = submissions[index];
1660+
if (sub) {
1661+
// Look for a delete/close/remove button within the submission
1662+
const deleteBtn = sub.querySelector('button[title*="delete" i], button[title*="remove" i], button[title*="cancel" i], .neuroglancer-icon[title*="delete" i]') as HTMLElement | null;
1663+
if (deleteBtn) {
1664+
deleteBtn.click();
1665+
} else {
1666+
// No button found — try removing the DOM node directly
1667+
sub.remove();
1668+
}
1669+
}
1670+
}
1671+
} catch (e) {
1672+
console.warn('[smo] removeMergeSegment DOM error:', e);
1673+
}
1674+
// Also update local state immediately for UI responsiveness
16541675
mergeSegments.value.splice(index, 1);
16551676
if (mergeSubmissionCount.value > 0) mergeSubmissionCount.value--;
16561677
}

0 commit comments

Comments
 (0)