diff --git a/CHDataManagement/Extensions/Sequence+Sorted.swift b/CHDataManagement/Extensions/Sequence+Sorted.swift index 414b4c6..b76e8e4 100644 --- a/CHDataManagement/Extensions/Sequence+Sorted.swift +++ b/CHDataManagement/Extensions/Sequence+Sorted.swift @@ -35,6 +35,12 @@ extension Collection where Element: Collection, Element.Element: Hashable { } } +extension Collection where Element: Hashable { + + func asSet() -> Set { + Set(self) + } +} extension RangeReplaceableCollection where Element: Comparable { diff --git a/CHDataManagement/Generator/Results/GenerationResults.swift b/CHDataManagement/Generator/Results/GenerationResults.swift index b9913d3..24f22bb 100644 --- a/CHDataManagement/Generator/Results/GenerationResults.swift +++ b/CHDataManagement/Generator/Results/GenerationResults.swift @@ -123,6 +123,11 @@ final class GenerationResults: ObservableObject { update { self.warnings = warnings } let unsavedOutputFiles = cache.values.map { $0.unsavedOutputFiles.keys }.union() update { self.unsavedOutputFiles = unsavedOutputFiles } + let emptyPages = cache.values.filter { $0.pageIsEmpty }.map { $0.itemId }.compactMap { id -> LocalizedPageId? in + guard case .page(let page) = id.itemType else { return nil } + return LocalizedPageId(language: id.language, pageId: page.id) + }.asSet() + update { self.emptyPages = emptyPages } let redirects = cache.values.compactMap { $0.redirect }.reduce(into: [:]) { $0[$1.originalUrl] = $1.newUrl } update { self.redirects = redirects } }