Improve asset handling

This commit is contained in:
Christoph Hagen
2024-12-16 15:36:58 +01:00
parent 31d1ecb8bd
commit b22b76fd32
21 changed files with 264 additions and 85 deletions

View File

@ -12,9 +12,6 @@ struct PageDetailView: View {
@ObservedObject
private var page: Page
@State
private var isGeneratingWebsite = false
@State
private var didGenerateWebsite: Bool?
@ -28,11 +25,11 @@ struct PageDetailView: View {
DetailTitle(
title: "Page",
text: "A page contains longer content")
HStack {
HStack(alignment: .firstTextBaseline) {
Button(action: generate) {
Text("Generate")
}
.disabled(isGeneratingWebsite)
.disabled(content.isGeneratingWebsite)
if let didGenerateWebsite {
if didGenerateWebsite {
Image(systemSymbol: .checkmarkCircleFill)
@ -93,20 +90,9 @@ struct PageDetailView: View {
print("Missing output folder")
return
}
isGeneratingWebsite = true
DispatchQueue.global(qos: .userInitiated).async {
var success = true
for language in ContentLanguage.allCases {
let generator = LocalizedWebsiteGenerator(
content: content,
language: language)
if !generator.generate(page: page) {
print("Generation failed")
success = false
}
}
let success = content.generatePage(page)
DispatchQueue.main.async {
isGeneratingWebsite = false
didGenerateWebsite = success
}
}