From 7410cf4588f10e4e7f06effef2914e8062526ff8 Mon Sep 17 00:00:00 2001 From: Seongmin Lee Date: Thu, 24 Jul 2025 15:27:46 +0000 Subject: [PATCH] appview: pages: fix star `hx-target` bug `POST /star`'s template was whole `repoActions` fragment but `hx-target` was set to `#starBtn` only. Resulting wrapper div copied every time when user starred/unstarred the repo. This wasn't noticeable because fork button next to it was invisible due to undefined `.DisableFork` field on RepoStarFragment Signed-off-by: Seongmin Lee --- appview/pages/pages.go | 6 +++--- appview/state/star.go | 4 ++-- appview/pages/templates/layouts/repobase.html | 24 +++++++++++++++++++++++- appview/pages/templates/repo/fragments/repoActions.html | 48 ------------------------------------------------ appview/pages/templates/repo/fragments/repoStar.html | 26 ++++++++++++++++++++++++++ 5 file(s) changed, 54 insertion(s)(+), 54 deletion(s)(-) diff --git a/appview/pages/pages.go b/appview/pages/pages.go --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -448,14 +448,14 @@ return p.executePlain("user/fragments/editPins", w, params) } -type RepoActionsFragmentParams struct { +type RepoStarFragmentParams struct { IsStarred bool RepoAt syntax.ATURI Stats db.RepoStats } -func (p *Pages) RepoActionsFragment(w io.Writer, params RepoActionsFragmentParams) error { - return p.executePlain("repo/fragments/repoActions", w, params) +func (p *Pages) RepoStarFragment(w io.Writer, params RepoStarFragmentParams) error { + return p.executePlain("repo/fragments/repoStar", w, params) } type RepoDescriptionParams struct { diff --git a/appview/state/star.go b/appview/state/star.go --- a/appview/state/star.go +++ b/appview/state/star.go @@ -74,7 +74,7 @@ s.notifier.NewStar(r.Context(), star) - s.pages.RepoActionsFragment(w, pages.RepoActionsFragmentParams{ + s.pages.RepoStarFragment(w, pages.RepoStarFragmentParams{ IsStarred: true, RepoAt: subjectUri, Stats: db.RepoStats{ @@ -116,7 +116,7 @@ s.notifier.DeleteStar(r.Context(), star) - s.pages.RepoActionsFragment(w, pages.RepoActionsFragmentParams{ + s.pages.RepoStarFragment(w, pages.RepoStarFragmentParams{ IsStarred: false, RepoAt: subjectUri, Stats: db.RepoStats{ diff --git a/appview/pages/templates/layouts/repobase.html b/appview/pages/templates/layouts/repobase.html --- a/appview/pages/templates/layouts/repobase.html +++ b/appview/pages/templates/layouts/repobase.html @@ -19,7 +19,29 @@ {{ .RepoInfo.Name }} - {{ template "repo/fragments/repoActions" .RepoInfo }} +
+ {{ template "repo/fragments/repoStar" .RepoInfo }} + {{ if .RepoInfo.DisableFork }} + + {{ else }} + + {{ i "git-fork" "w-4 h-4" }} + fork + {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} + + {{ end }} +
{{ template "repo/fragments/repoDescription" . }} diff --git a/appview/pages/templates/repo/fragments/repoActions.html b/appview/pages/templates/repo/fragments/repoActions.html deleted file mode 100644 --- a/appview/pages/templates/repo/fragments/repoActions.html +++ /dev/null @@ -1,48 +0,0 @@ -{{ define "repo/fragments/repoActions" }} -
- - {{ if .DisableFork }} - - {{ else }} - - {{ i "git-fork" "w-4 h-4" }} - fork - {{ i "loader-circle" "w-4 h-4 animate-spin hidden group-[.htmx-request]:inline" }} - - {{ end }} -
-{{ end }} diff --git a/appview/pages/templates/repo/fragments/repoStar.html b/appview/pages/templates/repo/fragments/repoStar.html new file mode 100644 --- /dev/null +++ b/appview/pages/templates/repo/fragments/repoStar.html @@ -0,0 +1,26 @@ +{{ define "repo/fragments/repoStar" }} + +{{ end }} -- tangled.sh