Create page from post

This commit is contained in:
Christoph Hagen
2025-01-18 12:02:06 +01:00
parent 1d4b3c266c
commit 51eff690d2
7 changed files with 88 additions and 24 deletions

View File

@ -33,6 +33,12 @@ struct PostDetailView: View {
@Environment(\.language)
private var language
@EnvironmentObject
private var content: Content
@EnvironmentObject
private var selection: SelectedContent
@ObservedObject
private var post: Post
@ -54,6 +60,10 @@ struct PostDetailView: View {
title: "Post",
text: "Posts capture quick updates and can link to pages")
if post.linkedPage == nil {
Button("Create page", action: createPageFromPost)
}
IdPropertyView(
id: $post.id,
footer: "The id is used to link to post and store them",
@ -73,7 +83,7 @@ struct PostDetailView: View {
OptionalDatePropertyView(
title: "End date",
isEnabled: $post.hasEndDate,
date: $post.endDate,
date: $post.potentialEndDate,
footer: "The date when the post content ended")
PagePropertyView(
@ -98,6 +108,16 @@ struct PostDetailView: View {
.padding()
}
}
private func createPageFromPost() {
let page = post.makePage()
DispatchQueue.main.async {
content.pages.insert(page, at: 0)
post.linkedPage = page
selection.page = page
selection.tab = .pages
}
}
}
extension PostDetailView: MainContentView {