|
1 | 1 | import { TFile } from "obsidian" |
2 | 2 | import { CanvasData, CanvasNodeData } from "src/@types/Canvas" |
3 | | -import { CanvasPos, FileCacheEntry, MetadataCacheEntry, MetadataCacheMap, ResolvedLinks } from "src/@types/Obsidian" |
| 3 | +import { MetadataCacheCanvasEntry, MetadataCacheEntry, MetadataCacheMap } from "src/@types/Obsidian" |
4 | 4 | import HashHelper from "src/utils/hash-helper" |
5 | 5 | import PatchHelper from "src/utils/patch-helper" |
6 | 6 | import PathHelper from "src/utils/path-helper" |
@@ -44,12 +44,13 @@ export default class MetadataCachePatcher extends Patcher { |
44 | 44 | // Extract canvas file node embeds |
45 | 45 | const fileNodesEmbeds = content.nodes |
46 | 46 | .filter((node: CanvasNodeData) => node.type === 'file' && node.file) |
47 | | - .map((node: CanvasNodeData) => ({ |
48 | | - link: node.file, |
49 | | - original: node.file, |
50 | | - displayText: node.file, |
| 47 | + .map((node: CanvasNodeData) => [node.id, node.file] as [string, string]) |
| 48 | + .map(([nodeId, file]) => ({ |
| 49 | + link: file, |
| 50 | + original: file, |
| 51 | + displayText: file, |
51 | 52 | position: { |
52 | | - nodeId: node.id, |
| 53 | + nodeId: nodeId, |
53 | 54 | start: { line: 0, col: 0, offset: 0 }, |
54 | 55 | end: { line: 0, col: 0, offset: 0 } |
55 | 56 | } |
@@ -99,8 +100,14 @@ export default class MetadataCachePatcher extends Patcher { |
99 | 100 | ], |
100 | 101 | links: [ |
101 | 102 | ...textNodesLinks |
102 | | - ] |
103 | | - } as MetadataCacheEntry |
| 103 | + ], |
| 104 | + nodes: { |
| 105 | + ...textNodesMetadata.reduce((acc, metadata, index) => { |
| 106 | + acc[textNodesIds[index]] = metadata |
| 107 | + return acc |
| 108 | + }, {} as Record<string, MetadataCacheEntry>) |
| 109 | + } |
| 110 | + } satisfies MetadataCacheCanvasEntry as MetadataCacheEntry |
104 | 111 |
|
105 | 112 | // Trigger metadata cache change event |
106 | 113 | this.trigger('changed', file, "", this.metadataCache[fileHash]) |
|
0 commit comments