Skip to content

Commit 50e2ef1

Browse files
committed
Implement command dispatch for article and profile actions
1 parent 4afd1ee commit 50e2ef1

File tree

3 files changed

+28
-6
lines changed

3 files changed

+28
-6
lines changed

Abies.Conduit/Page/Article.cs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Abies.Conduit.Routing;
33
using Abies.DOM;
44
using System.Collections.Generic;
5+
using Abies.Conduit;
56
using static Abies.Html.Attributes;
67
using static Abies.Html.Events;
78

@@ -77,7 +78,7 @@ model with
7778
),
7879
Message.SubmitComment => (
7980
model with { SubmittingComment = true },
80-
[]
81+
[ new SubmitCommentCommand(model.Slug.Value, model.CommentInput) ]
8182
),
8283
Message.CommentSubmitted commentSubmitted => (
8384
model with
@@ -90,14 +91,29 @@ model with
9091
},
9192
[]
9293
),
93-
Message.DeleteComment => (model, []),
94+
Message.DeleteComment delete => (
95+
model,
96+
[ new DeleteCommentCommand(model.Slug.Value, delete.Id) ]
97+
),
9498
Message.CommentDeleted commentDeleted => (
95-
model with
96-
{
99+
model with
100+
{
97101
Comments = model.Comments?.FindAll(c => c.Id != commentDeleted.Id)
98102
},
99103
[]
100104
),
105+
Message.ToggleFavorite => (
106+
model,
107+
model.Article != null ? [ new ToggleFavoriteCommand(model.Article.Slug, model.Article.Favorited) ] : []
108+
),
109+
Message.ToggleFollow => (
110+
model,
111+
model.Article != null ? [ new ToggleFollowCommand(model.Article.Author.Username, model.Article.Author.Following) ] : []
112+
),
113+
Message.DeleteArticle => (
114+
model,
115+
model.Article != null ? [ new DeleteArticleCommand(model.Article.Slug) ] : []
116+
),
101117
_ => (model, [])
102118
};
103119

Abies.Conduit/Page/Editor.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Abies.Conduit.Routing;
33
using Abies.DOM;
44
using System.Collections.Generic;
5+
using Abies.Conduit;
56
using static Abies.Html.Attributes;
67
using static Abies.Html.Events;
78

@@ -83,7 +84,9 @@ public static (Model model, IEnumerable<Command> commands) Update(Abies.Message
8384
),
8485
Message.ArticleSubmitted => (
8586
model with { IsSubmitting = true, Errors = null },
86-
[]
87+
model.Slug == null
88+
? [ new CreateArticleCommand(model.Title, model.Description, model.Body, model.TagList ?? new List<string>()) ]
89+
: [ new UpdateArticleCommand(model.Slug, model.Title, model.Description, model.Body) ]
8790
),
8891
Message.ArticleSubmitSuccess slug => (
8992
model with { IsSubmitting = false, Errors = null, Slug = slug.Slug },

Abies.Conduit/Page/Profile.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ model with
7676
? [new LoadArticlesCommand(favoritedBy: model.UserName.Value)]
7777
: [new LoadArticlesCommand(author: model.UserName.Value)]
7878
),
79-
Message.ToggleFollow => (model, []),
79+
Message.ToggleFollow => (
80+
model,
81+
model.Profile != null ? [ new ToggleFollowCommand(model.UserName.Value, model.Profile.Following) ] : []
82+
),
8083
_ => (model, [])
8184
};
8285

0 commit comments

Comments
 (0)