Skip to content

Commit e47d2de

Browse files
Fixed popup menu not reloading when canvas patched. Fixed styles still applying if feature got disabled.
1 parent faee7ab commit e47d2de

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

src/canvas-extensions/interaction-tagger-canvas-extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Canvas, CanvasNode } from "src/@types/Canvas"
2-
import { EXPOSED_DATA } from "./node-data-tagger-canvas-extension"
2+
import { getExposedNodeData } from "./node-data-tagger-canvas-extension"
33
import AdvancedCanvasPlugin from "src/main"
44
import { CanvasEvent } from "src/events/events"
55

@@ -18,7 +18,7 @@ export default class InteractionTaggerCanvasExtension {
1818
const interactionEl = canvas.nodeInteractionLayer.interactionEl
1919
if (!interactionEl) return
2020

21-
for (const dataKey of EXPOSED_DATA) {
21+
for (const dataKey of getExposedNodeData(this.plugin.settingsManager)) {
2222
const datasetKey = TARGET_NODE_DATASET_PREFIX + dataKey.toString().charAt(0).toUpperCase() + dataKey.toString().slice(1)
2323

2424
const dataValue = node?.getData()[dataKey]

src/canvas-extensions/node-data-tagger-canvas-extension.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
import { Canvas, CanvasNode, CanvasNodeData } from "src/@types/Canvas"
22
import { CanvasEvent } from "src/events/events"
33
import AdvancedCanvasPlugin from "src/main"
4+
import AdvancedCanvasSettingsManager from "src/settings"
45

5-
export const EXPOSED_DATA = ['type', 'shape', 'isStartNode', 'portalToFile', 'portalId'] as (keyof CanvasNodeData)[]
6+
export function getExposedNodeData(settings: AdvancedCanvasSettingsManager): (keyof CanvasNodeData)[] {
7+
const exposedData: (keyof CanvasNodeData)[] = []
8+
9+
exposedData.push('type')
10+
if (settings.getSetting('shapesFeatureEnabled')) exposedData.push('shape')
11+
if (settings.getSetting('presentationFeatureEnabled')) exposedData.push('isStartNode')
12+
if (settings.getSetting('portalsFeatureEnabled')) exposedData.push('portalToFile', 'portalId')
13+
14+
return exposedData
15+
}
616

717
export default class NodeDataTaggerCanvasExtension {
818
plugin: AdvancedCanvasPlugin
@@ -17,7 +27,7 @@ export default class NodeDataTaggerCanvasExtension {
1727
const nodeData = node?.getData()
1828
if (!nodeData) continue
1929

20-
for (const dataKey of EXPOSED_DATA) {
30+
for (const dataKey of getExposedNodeData(this.plugin.settingsManager)) {
2131
const dataValue = nodeData[dataKey]
2232

2333
if (dataValue === undefined) delete node.nodeEl.dataset[dataKey]

src/events/canvas-event-emitter.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ export default class CanvasEventEmitter {
157157
// Re-init the canvas with the patched canvas object
158158
const canvasView = leaf.view as CanvasView
159159
canvasView.setViewData(canvasView.getViewData())
160+
161+
// Trigger popup menu changed event
162+
this.triggerWorkspaceEvent(CanvasEvent.PopupMenuCreated, canvasView.canvas)
160163
})
161164

162165
if (!canvasPatched) return

0 commit comments

Comments
 (0)