Show drafts in generation view

This commit is contained in:
Christoph Hagen
2025-05-04 10:13:59 +02:00
parent e689903f3c
commit dd720d6646
2 changed files with 37 additions and 22 deletions

View File

@ -12,6 +12,14 @@ struct GenerationContentView: View {
@Environment(\.dismiss)
private var dismiss
var draftPages: Set<Page> {
Set(content.pages.filter { $0.isDraft })
}
var draftPosts: Set<Post> {
Set(content.posts.filter { $0.isDraft })
}
var body: some View {
VStack(alignment: .leading) {
Text("Website Generation")
@ -45,7 +53,7 @@ struct GenerationContentView: View {
GenerationStringIssuesView(
text: "output files",
statusWhenNonEmpty: .nominal,
items: $content.results.outputFiles)
items: content.results.outputFiles)
GenerationResultsIssueView(
text: "\(content.results.imagesToGenerate.count) images",
status: .nominal,
@ -57,54 +65,62 @@ struct GenerationContentView: View {
GenerationStringIssuesView(
text: "external links",
statusWhenNonEmpty: .nominal,
items: $content.results.externalLinks)
items: content.results.externalLinks)
GenerationStringIssuesView(
text: "required files",
statusWhenNonEmpty: .nominal,
items: $content.results.requiredFiles) { $0.id }
items: content.results.requiredFiles) { $0.id }
GenerationStringIssuesView(
text: "external files",
statusWhenNonEmpty: .nominal,
items: $content.results.externalFiles) { $0.id }
items: content.results.externalFiles) { $0.id }
GenerationStringIssuesView(
text: "empty pages",
statusWhenNonEmpty: .warning,
items: $content.results.emptyPages) { "\($0.pageId) (\($0.language))" }
items: content.results.emptyPages) { "\($0.pageId) (\($0.language))" }
GenerationStringIssuesView(
text: "draft pages",
statusWhenNonEmpty: .warning,
items: draftPages) { $0.id }
GenerationStringIssuesView(
text: "draft posts",
statusWhenNonEmpty: .warning,
items: draftPosts) { $0.id }
GenerationStringIssuesView(
text: "additional output files",
statusWhenNonEmpty: .warning,
items: $content.results.unusedFilesInOutput)
items: content.results.unusedFilesInOutput)
GenerationStringIssuesView(
text: "inaccessible files",
items: $content.results.inaccessibleFiles) { $0.id }
items: content.results.inaccessibleFiles) { $0.id }
GenerationStringIssuesView(
text: "unparsable files",
items: $content.results.unparsableFiles) { $0.id }
items: content.results.unparsableFiles) { $0.id }
GenerationStringIssuesView(
text: "unsaved output files",
items: $content.results.unsavedOutputFiles)
items: content.results.unsavedOutputFiles)
GenerationStringIssuesView(
text: "failed image generations",
items: $content.results.failedImages) { $0.outputPath }
items: content.results.failedImages) { $0.outputPath }
GenerationStringIssuesView(
text: "missing files",
items: $content.results.missingFiles)
items: content.results.missingFiles)
GenerationStringIssuesView(
text: "missing tags",
items: $content.results.missingTags)
items: content.results.missingTags)
GenerationStringIssuesView(
text: "missing pages",
items: $content.results.missingPages)
items: content.results.missingPages)
GenerationStringIssuesView(
text: "invalid commands",
items: $content.results.invalidCommands)
items: content.results.invalidCommands)
GenerationStringIssuesView(
text: "invalid blocks",
items: $content.results.invalidBlocks)
items: content.results.invalidBlocks)
GenerationStringIssuesView(
text: "warnings",
statusWhenNonEmpty: .warning,
items: $content.results.warnings)
items: content.results.warnings)
HorizontalCenter {
Button(action: { dismiss() }) {
Text("Close")

View File

@ -6,8 +6,7 @@ struct GenerationStringIssuesView<T>: View where T: Hashable {
let statusWhenNonEmpty: IssueStatus
@Binding
var items: Set<T>
let items: Set<T>
let map: (T) -> String
@ -18,10 +17,10 @@ struct GenerationStringIssuesView<T>: View where T: Hashable {
items.isEmpty ? .nominal : statusWhenNonEmpty
}
init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Binding<Set<T>>, map: @escaping (T) -> String) {
init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Set<T>, map: @escaping (T) -> String) {
self.text = text
self.statusWhenNonEmpty = statusWhenNonEmpty
self._items = items
self.items = items
self.map = map
}
@ -56,10 +55,10 @@ struct GenerationStringIssuesView<T>: View where T: Hashable {
extension GenerationStringIssuesView where T == String {
init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Binding<Set<String>>) {
init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Set<String>) {
self.text = text
self.statusWhenNonEmpty = statusWhenNonEmpty
self._items = items
self.items = items
self.map = { $0 }
}
}