Improve display of generation results

This commit is contained in:
Christoph Hagen
2025-02-05 18:21:08 +01:00
parent 156bbf77d1
commit 2b88584ba1
3 changed files with 180 additions and 60 deletions

View File

@ -1,4 +1,5 @@
import SwiftUI
import SFSafeSymbols
struct GenerationContentView: View {
@ -34,71 +35,61 @@ struct GenerationContentView: View {
if content.isGeneratingWebsite {
ProgressView()
.progressViewStyle(.circular)
.frame(height: 25)
.scaleEffect(0.6)
.frame(height: 16)
}
Spacer()
}
Text(content.generationStatus)
.padding(.vertical, 5)
HStack(spacing: 8) {
Text("\(content.results.imagesToGenerate.count) images")
Text("\(content.results.externalLinks.count) external links")
Text("\(content.results.resultCount) items processed")
Text("\(content.results.requiredFiles.count) files")
}
List {
Section("Inaccessible files (\(content.results.inaccessibleFiles.count))") {
ForEach(content.results.inaccessibleFiles.sorted()) { file in
Text(file.id)
}
}
Section("Unparsable files (\(content.results.unparsableFiles.count))") {
ForEach(content.results.unparsableFiles.sorted()) { file in
Text(file.id)
}
}
Section("Missing files (\(content.results.missingFiles.count))") {
ForEach(content.results.missingFiles.sorted(), id: \.self) { file in
Text(file)
}
}
Section("Missing tags (\(content.results.missingTags.count))") {
ForEach(content.results.missingTags.sorted(), id: \.self) { tag in
Text(tag)
}
}
Section("Missing pages (\(content.results.missingPages.count))") {
ForEach(content.results.missingPages.sorted(), id: \.self) { page in
Text(page)
}
}
Section("Invalid commands (\(content.results.invalidCommands.count))") {
ForEach(content.results.invalidCommands.sorted(), id: \.self) { markdown in
Text(markdown)
}
}
Section("Invalid blocks (\(content.results.invalidBlocks.count))") {
ForEach(content.results.invalidBlocks.sorted(), id: \.self) { markdown in
Text(markdown)
}
}
Section("Warnings (\(content.results.warnings.count))") {
ForEach(content.results.warnings.sorted(), id: \.self) { warning in
Text(warning)
}
}
Section("Unsaved output files (\(content.results.unsavedOutputFiles.count))") {
ForEach(content.results.unsavedOutputFiles.sorted(), id: \.self) { file in
Text(file)
}
}
Section("Empty pages (\(content.results.emptyPages.count))") {
ForEach(content.results.emptyPages.sorted()) { id in
Text("\(id.pageId) (\(id.language))")
}
}
}
.frame(minHeight: 400)
GenerationResultsIssueView(
text: "\(content.results.imagesToGenerate.count) images",
status: .nominal,
items: { [] })
GenerationResultsIssueView(
text: "\(content.results.resultCount) items processed",
status: .nominal,
items: { [] })
GenerationStringIssuesView(
text: "external links",
statusWhenNonEmpty: .nominal,
items: $content.results.externalLinks)
GenerationStringIssuesView(
text: "required files",
statusWhenNonEmpty: .nominal,
items: $content.results.requiredFiles) { $0.id }
GenerationStringIssuesView(
text: "empty pages",
statusWhenNonEmpty: .warning,
items: $content.results.emptyPages) { "\($0.pageId) (\($0.language))" }
GenerationStringIssuesView(
text: "inaccessible files",
items: $content.results.inaccessibleFiles) { $0.id }
GenerationStringIssuesView(
text: "unparsable files",
items: $content.results.unparsableFiles) { $0.id }
GenerationStringIssuesView(
text: "unsaved output files",
items: $content.results.unsavedOutputFiles)
GenerationStringIssuesView(
text: "missing files",
items: $content.results.missingFiles)
GenerationStringIssuesView(
text: "missing tags",
items: $content.results.missingTags)
GenerationStringIssuesView(
text: "missing pages",
items: $content.results.missingPages)
GenerationStringIssuesView(
text: "invalid commands",
items: $content.results.invalidCommands)
GenerationStringIssuesView(
text: "invalid blocks",
items: $content.results.invalidBlocks)
GenerationStringIssuesView(
text: "warnings",
statusWhenNonEmpty: .warning,
items: $content.results.warnings)
HorizontalCenter {
Button(action: { dismiss() }) {
Text("Close")