Show page tags

This commit is contained in:
Christoph Hagen
2025-01-05 10:38:20 +01:00
parent 5684196ef3
commit 93e642c3c9
5 changed files with 47 additions and 11 deletions

View File

@ -64,7 +64,6 @@ struct LocalizedPageContentView: View {
didChangeContent = true
}
}
.padding()
.onAppear(perform: loadContent)
.onDisappear(perform: saveContent)
}

View File

@ -24,6 +24,9 @@ struct PageContentView: View {
@EnvironmentObject
private var content: Content
@State
private var showTagPicker = false
init(page: Page) {
self.page = page
}
@ -40,10 +43,36 @@ struct PageContentView: View {
Spacer()
}.padding()
} else {
LocalizedPageContentView(pageId: page.id, page: page.localized(in: language), language: language)
.id(page.id + language.rawValue)
VStack(alignment: .leading) {
FlowHStack {
ForEach(page.tags, id: \.id) { tag in
TagView(text: tag.localized(in: language).name)
.foregroundStyle(.white)
}
Button(action: { showTagPicker = true }) {
Image(systemSymbol: .squareAndPencilCircleFill)
.resizable()
.aspectRatio(1, contentMode: .fit)
.frame(height: 22)
.foregroundColor(Color.gray)
.background(Circle()
.fill(Color.white)
.padding(1))
}
.buttonStyle(.plain)
}
LocalizedPageContentView(pageId: page.id, page: page.localized(in: language), language: language)
.id(page.id + language.rawValue)
}.padding()
.sheet(isPresented: $showTagPicker) {
TagSelectionView(
presented: $showTagPicker,
selected: $page.tags,
tags: $content.tags)
}
}
}
}