From 4e463b0a8a83d24420354be5ff2e935cb40a4673 Mon Sep 17 00:00:00 2001 From: Sol Fisher Romanoff Date: Fri, 18 Nov 2022 16:02:02 +0200 Subject: [PATCH] Add followers/following tabs --- lib/pleroma/web/router.ex | 3 ++- .../web/static_fe/static_fe_controller.ex | 17 +++++++++----- .../static_fe/static_fe/_user_card.html.eex | 21 ++++++++++++++++++ .../static_fe/static_fe/profile.html.eex | 22 ++++++++++++++++++- priv/static/static-fe/static-fe.css | 7 +++++- 5 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 lib/pleroma/web/templates/static_fe/static_fe/_user_card.html.eex diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index f31377980..9f7c94c53 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -759,7 +759,8 @@ defmodule Pleroma.Web.Router do end scope "/", Pleroma.Web.ActivityPub do - pipe_through([:activitypub_client]) + # Note: html format is supported only if static FE is enabled + pipe_through([:activitypub_client, :accepts_html_xml_json, :static_fe]) get("/api/ap/whoami", ActivityPubController, :whoami) get("/users/:nickname/inbox", ActivityPubController, :read_inbox) diff --git a/lib/pleroma/web/static_fe/static_fe_controller.ex b/lib/pleroma/web/static_fe/static_fe_controller.ex index 0bf60c3c4..1ee0aa096 100644 --- a/lib/pleroma/web/static_fe/static_fe_controller.ex +++ b/lib/pleroma/web/static_fe/static_fe_controller.ex @@ -60,15 +60,22 @@ def show(%{assigns: %{username_or_id: username_or_id, tab: tab}} = conn, params) params = case tab do "posts" -> Map.put(params, :exclude_replies, true) - "with_replies" -> params "media" -> Map.put(params, :only_media, true) + _ -> params end - timeline = - user - |> ActivityPub.fetch_user_activities(_reading_user = nil, params) - |> Enum.map(&represent/1) + + timeline = case tab do + tab when tab in ["posts", "with_replies", "media"] -> + user + |> ActivityPub.fetch_user_activities(_reading_user = nil, params) + |> Enum.map(&represent/1) + "following" -> + User.get_friends(user) + "followers" -> + User.get_followers(user) + end prev_page_id = (params["min_id"] || params["max_id"]) && diff --git a/lib/pleroma/web/templates/static_fe/static_fe/_user_card.html.eex b/lib/pleroma/web/templates/static_fe/static_fe/_user_card.html.eex new file mode 100644 index 000000000..dc8717ea0 --- /dev/null +++ b/lib/pleroma/web/templates/static_fe/static_fe/_user_card.html.eex @@ -0,0 +1,21 @@ +
+ +
+
+ <%= raw Formatter.emojify(@user.name, @user.emoji) %> +
+ +
+
diff --git a/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex b/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex index eddc1f9ba..2527e6bd4 100644 --- a/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex +++ b/lib/pleroma/web/templates/static_fe/static_fe/profile.html.eex @@ -1,5 +1,5 @@
-