consolidate tags, hide date

This commit is contained in:
Christoph Hagen
2025-01-05 12:19:32 +01:00
parent 93e642c3c9
commit 5ac5a7b000
26 changed files with 284 additions and 129 deletions

View File

@@ -72,6 +72,7 @@ struct AddPageView: View {
externalLink: nil,
isDraft: true,
createdDate: .now,
hideDate: false,
startDate: .now,
endDate: nil,
german: .init(content: content,

View File

@@ -24,9 +24,6 @@ struct PageContentView: View {
@EnvironmentObject
private var content: Content
@State
private var showTagPicker = false
init(page: Page) {
self.page = page
}
@@ -44,36 +41,13 @@ struct PageContentView: View {
}.padding()
} else {
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)
}
TagDisplayView(tags: $page.tags)
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)
}
.padding()
}
}
}
extension PageContentView: MainContentView {

View File

@@ -67,6 +67,18 @@ struct PageDetailView: View {
value: $page.isDraft,
footer: "Indicate a page as a draft to hide it from the website")
.disabled(page.isExternalUrl)
.onChange(of: page.externalLink) { _, newValue in
// Ensure that external pages are not drafts
if newValue != nil && page.isDraft {
page.isDraft = false
}
}
BoolPropertyView(
title: "Hide date",
value: $page.hideDate,
footer: "Do not show the date string on the page")
.disabled(page.isExternalUrl)
DatePropertyView(
title: "Start date",