Skip to content

Commit

Permalink
fix(Editor): Trigger gotoLine only when change is from sidebar (#2012)
Browse files Browse the repository at this point in the history
  • Loading branch information
mdziekon authored Sep 15, 2024
1 parent f108545 commit 682a3dc
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions src/components/TheEditor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,15 @@
dense
:active="structureActive"
:open="structureOpen"
item-key="line"
:item-key="treeviewItemKeyProp"
:items="configFileStructure"
class="w-100"
@update:active="activeChanges">
<template #label="{ item }">
<div
class="cursor-pointer _structure-sidebar-item"
:class="item.type == 'item' ? 'ͼp' : 'ͼt'">
:class="item.type == 'item' ? 'ͼp' : 'ͼt'"
@click="activeChangesItemClick">
{{ item.name }}
</div>
</template>
Expand Down Expand Up @@ -188,8 +189,10 @@ export default class TheEditor extends Mixins(BaseMixin) {
dialogConfirmChange = false
dialogDevices = false
fileStructureSidebar = true
treeviewItemKeyProp = 'line' as const
structureActive: number[] = []
structureOpen: number[] = []
structureActiveChangedBySidebar: boolean = false
formatFilesize = formatFilesize
Expand Down Expand Up @@ -424,8 +427,23 @@ export default class TheEditor extends Mixins(BaseMixin) {
this.fileStructureSidebar = !this.fileStructureSidebar
}
activeChanges(key: any) {
this.editor?.gotoLine(key)
// Relies on event bubbling to flip the flag before treeview active change is handled
activeChangesItemClick() {
this.structureActiveChangedBySidebar = true
}
activeChanges(activeItems: Array<ConfigFileSection[typeof this.treeviewItemKeyProp]>) {
if (!this.structureActiveChangedBySidebar) {
return
}
this.structureActiveChangedBySidebar = false
if (!activeItems.length) {
return
}
this.editor?.gotoLine(activeItems[0])
}
lineChanges(line: number) {
Expand Down

0 comments on commit 682a3dc

Please sign in to comment.