aboutsummaryrefslogtreecommitdiffhomepage
path: root/templates/actor/profile_follow_button.php
diff options
context:
space:
mode:
Diffstat (limited to 'templates/actor/profile_follow_button.php')
-rw-r--r--templates/actor/profile_follow_button.php20
1 files changed, 20 insertions, 0 deletions
diff --git a/templates/actor/profile_follow_button.php b/templates/actor/profile_follow_button.php
new file mode 100644
index 0000000..e2b314d
--- /dev/null
+++ b/templates/actor/profile_follow_button.php
@@ -0,0 +1,20 @@
+<?php
+use Digitigrade\Model\FollowRelation;
+use Digitigrade\Model\FollowRelationStatus;
+
+$relation = FollowRelation::findByActors($user->actor, $actor);
+$state = match ($relation?->status) {
+ null => $actor->requestToFollow ? 'request' : 'normal',
+ FollowRelationStatus::PENDING => 'pending',
+ FollowRelationStatus::ACTIVE => 'active'
+};
+?>
+<button class="<?= $state == 'active' ? 'secondary' : 'primary' ?>"
+ hx-post="/fragment/actor/<?= $actor->id ?>/followButton" hx-swap="outerHTML" <?= $state == 'pending' ? 'disabled' : '' ?> hx-disabled-elt="this">
+ <?= __(match ($state) {
+ 'active' => 'user.profile.unfollow.action',
+ 'pending' => 'user.profile.follow.pending',
+ 'request' => 'user.profile.requestToFollow.action',
+ 'normal' => 'user.profile.follow.action'
+ }) ?>
+</button> \ No newline at end of file