From 17c9ab77ea22c36826a8db3ad9224b48e3cbb3b8 Mon Sep 17 00:00:00 2001 From: Alessio Date: Sun, 31 Dec 2023 16:32:43 -0600 Subject: [PATCH] Make Followers/Followees pages show the user header at the top - also make the followees/followers count indicators in a user header link to their respective pages --- internal/webserver/handler_lists.go | 2 + internal/webserver/handler_user_feed.go | 2 + internal/webserver/static/styles.css | 8 +-- .../webserver/tpl/includes/user_header.tpl | 59 +++++++++++++++++++ internal/webserver/tpl/list.tpl | 10 ++++ internal/webserver/tpl/user_feed.tpl | 56 +----------------- 6 files changed, 78 insertions(+), 59 deletions(-) create mode 100644 internal/webserver/tpl/includes/user_header.tpl diff --git a/internal/webserver/handler_lists.go b/internal/webserver/handler_lists.go index 99947ef..90be274 100644 --- a/internal/webserver/handler_lists.go +++ b/internal/webserver/handler_lists.go @@ -8,6 +8,8 @@ import ( type ListData struct { Title string + HeaderUserID scraper.UserID + HeaderTweetID scraper.TweetID UserIDs []scraper.UserID } diff --git a/internal/webserver/handler_user_feed.go b/internal/webserver/handler_user_feed.go index 1b1e3f0..1d86940 100644 --- a/internal/webserver/handler_user_feed.go +++ b/internal/webserver/handler_user_feed.go @@ -116,11 +116,13 @@ func (app *Application) UserFollowees(w http.ResponseWriter, r *http.Request, us data, trove := NewListData(app.Profile.GetFollowees(user.ID)) trove.Users[user.ID] = user // Not loaded otherwise; needed to profile image in the login button on the sidebar data.Title = fmt.Sprintf("Followed by @%s", user.Handle) + data.HeaderUserID = user.ID app.buffered_render_page(w, "tpl/list.tpl", PageGlobalData{TweetTrove: trove}, data) } func (app *Application) UserFollowers(w http.ResponseWriter, r *http.Request, user scraper.User) { data, trove := NewListData(app.Profile.GetFollowers(user.ID)) trove.Users[user.ID] = user data.Title = fmt.Sprintf("@%s's followers", user.Handle) + data.HeaderUserID = user.ID app.buffered_render_page(w, "tpl/list.tpl", PageGlobalData{TweetTrove: trove}, data) } diff --git a/internal/webserver/static/styles.css b/internal/webserver/static/styles.css index 551748c..de8579a 100644 --- a/internal/webserver/static/styles.css +++ b/internal/webserver/static/styles.css @@ -216,14 +216,14 @@ h3 { border: 1px solid var(--color-outline-gray); } -.user-feed-header { +.user-header { border-bottom: 1px solid var(--color-outline-gray); } -.user-feed-header .author-info { +.user-header .author-info { font-size: 1.3em; padding: 1em; } -.user-feed-header .profile-image { +.user-header .profile-image { width: 8em; height: 8em; } @@ -354,7 +354,7 @@ ul.quick-links { align-items: center; gap: 0.3em; } -.user-feed-header-info-container { +.user-header-info-container { padding: 2em; border-bottom: 1px solid var(--color-outline-gray); } diff --git a/internal/webserver/tpl/includes/user_header.tpl b/internal/webserver/tpl/includes/user_header.tpl new file mode 100644 index 0000000..512a0eb --- /dev/null +++ b/internal/webserver/tpl/includes/user_header.tpl @@ -0,0 +1,59 @@ +{{define "user-header"}} +
+ {{if .BannerImageLocalPath}} + {{if .IsContentDownloaded}} + + {{else}} + + {{end}} + {{end}} + +
+
+ {{template "author-info" .}} + {{template "following-button" .}} +
+
+ {{template "text-with-entities" .Bio}} +
+ {{if .Location}} +
+ + {{.Location}} +
+ {{end}} + {{if .Website}} +
+ + {{.Website}} +
+ {{end}} +
+ + {{.JoinDate.Time.Format "Jan 2, 2006"}} +
+ + +
+
+{{end}} diff --git a/internal/webserver/tpl/list.tpl b/internal/webserver/tpl/list.tpl index d981180..5e15a17 100644 --- a/internal/webserver/tpl/list.tpl +++ b/internal/webserver/tpl/list.tpl @@ -1,5 +1,15 @@ {{define "title"}}{{.Title}}{{end}} {{define "main"}} + {{if .HeaderUserID}} + {{template "user-header" (user .HeaderUserID)}} + {{else if .HeaderTweetID}} + {{template "tweet" (tweet .HeaderTweetID)}} + {{end}} + +

+ {{.Title}} +

+ {{template "list" .UserIDs}} {{end}} diff --git a/internal/webserver/tpl/user_feed.tpl b/internal/webserver/tpl/user_feed.tpl index 07fec73..ebbe633 100644 --- a/internal/webserver/tpl/user_feed.tpl +++ b/internal/webserver/tpl/user_feed.tpl @@ -3,61 +3,7 @@ {{define "main"}} {{$user := (user .UserID)}}
- {{if $user.BannerImageLocalPath}} - {{if $user.IsContentDownloaded}} - - {{else}} - - {{end}} - {{end}} - -
-
- {{template "author-info" $user}} - {{template "following-button" $user}} -
-
- {{template "text-with-entities" $user.Bio}} -
- {{if $user.Location}} -
- - {{$user.Location}} -
- {{end}} - {{if $user.Website}} - - {{end}} -
- - {{$user.JoinDate.Time.Format "Jan 2, 2006"}} -
- - -
+ {{template "user-header" $user}}