forked from tangled.org/core
Monorepo for Tangled — https://tangled.org

appview/pages: use dedicated template for swap-oob fragment

Signed-off-by: Seongmin Lee <git@boltless.me>

Changed files
+7 -4
appview
pages
templates
+1 -1
appview/pages/pages.go
···
}
func (p *Pages) StarBtnFragment(w io.Writer, params StarBtnFragmentParams) error {
-
return p.executePlain("fragments/starBtn", w, params)
+
return p.executePlain("fragments/starBtn-oob", w, params)
}
type RepoIndexParams struct {
+5
appview/pages/templates/fragments/starBtn-oob.html
···
+
{{ define "fragments/starBtn-oob" }}
+
<div hx-swap-oob='outerHTML:#starBtn[data-star-subject-at="{{ .SubjectAt }}"]'>
+
{{ template "fragments/starBtn" . }}
+
</div>
+
{{ end }}
+1 -3
appview/pages/templates/fragments/starBtn.html
···
{{ define "fragments/starBtn" }}
+
{{/* NOTE: this fragment is always replaced with hx-swap-oob */}}
<button
id="starBtn"
class="btn disabled:opacity-50 disabled:cursor-not-allowed flex gap-2 items-center group"
···
{{ end }}
hx-trigger="click"
-
hx-target="this"
-
hx-swap="outerHTML"
-
hx-swap-oob='outerHTML:#starBtn[data-star-subject-at="{{ .SubjectAt }}"]'
hx-disabled-elt="#starBtn"
>
{{ if .IsStarred }}