Skip to content

Commit 9220494

Browse files
author
Chiselo Maintainer
committed
Clear stale source mapping previews
1 parent 40d5de9 commit 9220494

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

Chiselo/ContentView.swift

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4222,15 +4222,18 @@ private struct InspectorPanel: View {
42224222
let snippet = element.sourceSnippet ?? ""
42234223
guard sourceDraftElementID != element.id else {
42244224
if sourceDraftOriginalSnippet != snippet {
4225+
invalidateSourceDraftValidationPreview()
42254226
sourceDraft = snippet
42264227
sourceDraftOriginalSnippet = snippet
42274228
scheduleSourceDraftValidationPreview(for: element, delay: 0)
42284229
} else if sourceDraft.isEmpty, !snippet.isEmpty {
4230+
invalidateSourceDraftValidationPreview()
42294231
sourceDraft = snippet
42304232
scheduleSourceDraftValidationPreview(for: element, delay: 0)
42314233
}
42324234
return
42334235
}
4236+
invalidateSourceDraftValidationPreview()
42344237
sourceDraftElementID = element.id
42354238
sourceDraftOriginalSnippet = snippet
42364239
sourceDraft = snippet
@@ -5100,10 +5103,10 @@ private struct InspectorPanel: View {
51005103

51015104
private func restoreSourceDraft(for element: EditorElement) {
51025105
let snippet = element.sourceSnippet ?? ""
5106+
invalidateSourceDraftValidationPreview()
51035107
sourceDraft = snippet
51045108
sourceDraftElementID = element.id
51055109
sourceDraftOriginalSnippet = snippet
5106-
model.sourceDraftMappingSummary = nil
51075110
model.status = "已恢复为当前选中对象的原始源码片段"
51085111
}
51095112

@@ -5166,6 +5169,12 @@ private struct InspectorPanel: View {
51665169
}
51675170
}
51685171

5172+
private func invalidateSourceDraftValidationPreview() {
5173+
sourceDraftValidationTask?.cancel()
5174+
pendingSourceDraftValidationID = UUID()
5175+
model.sourceDraftMappingSummary = nil
5176+
}
5177+
51695178
private func sourceSyncTitle(for element: EditorElement) -> String {
51705179
let tag = element.tagName?.uppercased() ?? "HTML"
51715180
return "\(tag) 源码片段"
@@ -5285,6 +5294,7 @@ private struct InspectorPanel: View {
52855294
return
52865295
}
52875296

5297+
invalidateSourceDraftValidationPreview()
52885298
model.selectHTMLNode(id: previousID)
52895299
model.status = item.slot == "unmatched" ? "已定位将被替换的原对象" : "已定位将保留的原对象"
52905300
}

0 commit comments

Comments
 (0)