diff --git a/src/PostIt/PostIt/ViewModels/MainPageViewModel.cs b/src/PostIt/PostIt/ViewModels/MainPageViewModel.cs index d1d16306..d907606f 100644 --- a/src/PostIt/PostIt/ViewModels/MainPageViewModel.cs +++ b/src/PostIt/PostIt/ViewModels/MainPageViewModel.cs @@ -35,18 +35,6 @@ public partial class MainPageViewModel : ViewModelBase [ObservableProperty] public partial string DraftArticle { get; set; } - /// Editor buffer for the post's publication state. - /// Reflects the server-side IsPublished flag (the - /// existence of a row in BlogSpotPublication) and - /// is pushed to the server via - /// on explicit - /// toggle — it is NOT included in the regular Save - /// payload, mirroring the wire contract where - /// BlogPostDto doesn't carry Publish as a - /// mutable field. Toggling is its own action. - [ObservableProperty] - public partial bool DraftIsPublished { get; set; } - [ObservableProperty] public partial ViewModelBase? CurrentViewModel { get; set; } @@ -114,7 +102,6 @@ public partial class MainPageViewModel : ViewModelBase WindowTitle = "PostIt"; DraftTitle = string.Empty; DraftArticle = string.Empty; - DraftIsPublished = false; CurrentViewModel = this; } @@ -144,9 +131,6 @@ public partial class MainPageViewModel : ViewModelBase // doesn't show stale content. DraftTitle = value?.Title ?? string.Empty; DraftArticle = value?.Article ?? string.Empty; - // Mirror publication state too. Defaults to false on - // null selection so a fresh draft starts unpublished. - DraftIsPublished = value?.IsPublished ?? false; UpdateCommandStates(); } @@ -257,46 +241,6 @@ public partial class MainPageViewModel : ViewModelBase }); } - /// - /// Toggle the publication state of the currently selected - /// post. Pushes the new state to - /// PUT /api/BlogApi/{id}/publish and reflects it - /// locally in + the - /// selected post so the UI updates without a full - /// refresh. - /// - /// The toggle is its own action — separate from Save - /// — because Publish is not part of the - /// BlogPostDto payload. Bundling it into Save - /// would require a wire-shape change and a second server - /// overload; the dedicated endpoint keeps the wire - /// contract clean. - /// - [RelayCommand] - internal async Task TogglePublish() - { - if (SelectedPost is null || SelectedPost.Id == 0) - { - StatusMessage = "Sélectionnez un billet existant pour changer sa publication."; - return; - } - - await ExecuteAsync(async () => - { - var desired = !DraftIsPublished; - await BlogClient.SetPublishAsync(SelectedPost.Id, desired); - DraftIsPublished = desired; - // Mirror into the selected post so a subsequent - // RefreshPostsAsync() doesn't blow away the - // locally flipped state until the round-trip - // re-hydrates it. - SelectedPost.IsPublished = desired; - StatusMessage = desired - ? $"Billet {SelectedPost.Id} publié." - : $"Billet {SelectedPost.Id} remis en brouillon."; - }); - } - [RelayCommand] internal void OpenSettings() { diff --git a/src/PostIt/PostIt/Views/MainPage.axaml b/src/PostIt/PostIt/Views/MainPage.axaml index 0246857e..c6e7fb10 100644 --- a/src/PostIt/PostIt/Views/MainPage.axaml +++ b/src/PostIt/PostIt/Views/MainPage.axaml @@ -35,18 +35,6 @@