Full generation, file type cleanup
This commit is contained in:
@ -4,6 +4,9 @@ import HighlightedTextEditor
|
||||
|
||||
struct LocalizedPageContentView: View {
|
||||
|
||||
@EnvironmentObject
|
||||
var content: Content
|
||||
|
||||
let pageId: String
|
||||
|
||||
let language: ContentLanguage
|
||||
@ -11,9 +14,6 @@ struct LocalizedPageContentView: View {
|
||||
@ObservedObject
|
||||
var page: LocalizedPage
|
||||
|
||||
@State
|
||||
private var isGeneratingWebsite = false
|
||||
|
||||
@State
|
||||
private var pageContent: String = ""
|
||||
|
||||
@ -21,7 +21,7 @@ struct LocalizedPageContentView: View {
|
||||
private var pageContentUsedForGeneration: String = ""
|
||||
|
||||
@State
|
||||
private var generationResults = PageGenerationResults()
|
||||
private var generationResults: PageGenerationResults?
|
||||
|
||||
@State
|
||||
private var didChangeContent = false
|
||||
@ -47,10 +47,16 @@ struct LocalizedPageContentView: View {
|
||||
}
|
||||
Button(action: checkContent) {
|
||||
Text("Check")
|
||||
}.disabled(content.isGeneratingWebsite)
|
||||
if content.isGeneratingWebsite {
|
||||
ProgressView()
|
||||
.frame(height: 15)
|
||||
}
|
||||
Spacer()
|
||||
}
|
||||
PageContentResultsView(results: generationResults)
|
||||
if let generationResults {
|
||||
PageContentResultsView(results: generationResults)
|
||||
}
|
||||
HighlightedTextEditor(
|
||||
text: $pageContent,
|
||||
highlightRules: .markdown)
|
||||
@ -65,9 +71,19 @@ struct LocalizedPageContentView: View {
|
||||
|
||||
private func loadContent() {
|
||||
let language = language
|
||||
guard page.content.storage.hasPageContent(for: pageId, language: language) else {
|
||||
pageContent = "New file"
|
||||
DispatchQueue.main.async {
|
||||
didChangeContent = false
|
||||
}
|
||||
return
|
||||
}
|
||||
guard let content = page.content.storage.pageContent(for: pageId, language: language) else {
|
||||
print("Failed to load page content")
|
||||
pageContent = "Failed to load"
|
||||
DispatchQueue.main.async {
|
||||
didChangeContent = false
|
||||
}
|
||||
return
|
||||
}
|
||||
guard content != "" else {
|
||||
@ -105,15 +121,14 @@ struct LocalizedPageContentView: View {
|
||||
guard content != pageContentUsedForGeneration else {
|
||||
return
|
||||
}
|
||||
isGeneratingWebsite = true
|
||||
DispatchQueue.global(qos: .background).async {
|
||||
let generator = PageContentParser(content: page.content, language: language)
|
||||
_ = generator.generatePage(from: content)
|
||||
|
||||
DispatchQueue.main.async {
|
||||
self.generationResults = generator.results
|
||||
isGeneratingWebsite = false
|
||||
}
|
||||
guard let page = self.content.page(pageId) else {
|
||||
return
|
||||
}
|
||||
guard !self.content.isGeneratingWebsite else {
|
||||
return
|
||||
}
|
||||
self.content.check(content: content, of: page, for: language) {
|
||||
self.generationResults = $0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user