From 1a105917b222eee38eac0433f5df3ce5b5051494 Mon Sep 17 00:00:00 2001 From: Otavio Cordeiro Date: Mon, 5 Jan 2026 12:27:47 -0300 Subject: [PATCH] Hide copy and share actions for draft posts --- .../Views/Weblog Entry/WeblogEntryView.swift | 23 ++++++++++++------- .../Weblog Entry/WeblogEntryViewModel.swift | 4 ++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryView.swift b/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryView.swift index 19f01ae..41bcb64 100644 --- a/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryView.swift +++ b/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryView.swift @@ -83,13 +83,20 @@ struct WeblogEntryView: View { @ViewBuilder private func makeContextualMenu() -> some View { makeEditEntryMenuItem() - Divider() - makeCopyEntryURLMenuItem() - makeCopyMarkdownLinkMenuItem() - Divider() - makeOpenInBrowserMenuItem() - makeShareMenuItem() - makeShareOnStatuslogMenuItem() + + if !viewModel.isDraft { + Divider() + makeCopyEntryURLMenuItem() + makeCopyMarkdownLinkMenuItem() + } + + if !viewModel.isDraft { + Divider() + makeOpenInBrowserMenuItem() + makeShareMenuItem() + makeShareOnStatuslogMenuItem() + } + Divider() makeDeleteEntryMenuItem() } @@ -99,7 +106,7 @@ struct WeblogEntryView: View { Button { openEditor() } label: { - Label("Edit Entry", systemImage: "link") + Label("Edit Entry", systemImage: "pencil") } } diff --git a/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryViewModel.swift b/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryViewModel.swift index 38e4cc1..f4c134f 100644 --- a/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryViewModel.swift +++ b/Packages/Weblog/Sources/Weblog/Views/Weblog Entry/WeblogEntryViewModel.swift @@ -39,6 +39,10 @@ final class WeblogEntryViewModel: Identifiable { status.lowercased() != "live" } + var isDraft: Bool { + status.lowercased() == "draft" + } + private let repository: any WeblogRepositoryProtocol private let clipboardService: ClipboardServiceProtocol