From 6f9e9018fcb740577e3f7f8df001af92d12e40a7 Mon Sep 17 00:00:00 2001 From: Seongmin Lee Date: Fri, 25 Jul 2025 00:27:46 +0900 Subject: [PATCH] appview: pages: fix star `hx-target` bug Change-Id: lnnlktvkuluqzktnlxsmnrzpyuuzxvxv `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/pages/templates/layouts/repobase.html | 24 +++++++++- .../templates/repo/fragments/repoActions.html | 48 ------------------- .../templates/repo/fragments/repoStar.html | 26 ++++++++++ appview/state/star.go | 4 +- 5 files changed, 54 insertions(+), 54 deletions(-) delete mode 100644 appview/pages/templates/repo/fragments/repoActions.html create mode 100644 appview/pages/templates/repo/fragments/repoStar.html diff --git a/appview/pages/pages.go b/appview/pages/pages.go index e22d23f..05a733d 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -448,14 +448,14 @@ func (p *Pages) EditPinsFragment(w io.Writer, params EditPinsParams) error { 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/pages/templates/layouts/repobase.html b/appview/pages/templates/layouts/repobase.html index 502a681..9fdd77e 100644 --- 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 index 64fdb8d..0000000 --- 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 index 0000000..7ca59a9 --- /dev/null +++ b/appview/pages/templates/repo/fragments/repoStar.html @@ -0,0 +1,26 @@ +{{ define "repo/fragments/repoStar" }} + +{{ end }} diff --git a/appview/state/star.go b/appview/state/star.go index 561de8c..6b91341 100644 --- a/appview/state/star.go +++ b/appview/state/star.go @@ -74,7 +74,7 @@ func (s *State) Star(w http.ResponseWriter, r *http.Request) { 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 @@ func (s *State) Star(w http.ResponseWriter, r *http.Request) { 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{ -- 2.43.0