Monorepo for Tangled tangled.org

appview/pages: embed hx-swap-oob to star button #950

merged opened by boltless.me targeting master from sl/wpyusnoxurns

hx-swap-oob on breaks on hx-boost swaps (star button vainishing repo tab changes), so that was why I made starBtn-oob fragment. But hx-swap-oob="outerHTML:..." doesn't strip the wrapper element, adding div wrappers to star button on every star/unstar interactions.

To fix this, dynamically put hx-swap-oob attribute to star button itself by using .HxSwapOob param.

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

Labels

None yet.

assignee

None yet.

Participants 2
AT URI
at://did:plc:xasnlahkri4ewmbuzly2rlc5/sh.tangled.repo.pull/3mcf6y4joo722
+4 -6
Diff #0
+3 -1
appview/pages/pages.go
··· 648 648 IsStarred bool 649 649 SubjectAt syntax.ATURI 650 650 StarCount int 651 + HxSwapOob bool 651 652 } 652 653 653 654 func (p *Pages) StarBtnFragment(w io.Writer, params StarBtnFragmentParams) error { 654 - return p.executePlain("fragments/starBtn-oob", w, params) 655 + params.HxSwapOob = true 656 + return p.executePlain("fragments/starBtn", w, params) 655 657 } 656 658 657 659 type RepoIndexParams struct {
-5
appview/pages/templates/fragments/starBtn-oob.html
··· 1 - {{ define "fragments/starBtn-oob" }} 2 - <div hx-swap-oob='outerHTML:#starBtn[data-star-subject-at="{{ .SubjectAt }}"]'> 3 - {{ template "fragments/starBtn" . }} 4 - </div> 5 - {{ end }}
+1
appview/pages/templates/fragments/starBtn.html
··· 9 9 {{ else }} 10 10 hx-post="/star?subject={{ .SubjectAt }}&countHint={{ .StarCount }}" 11 11 {{ end }} 12 + {{ if .HxSwapOob }}hx-swap-oob='outerHTML:#starBtn[data-star-subject-at="{{ .SubjectAt }}"]'{{ end }} 12 13 13 14 hx-trigger="click" 14 15 hx-disabled-elt="#starBtn"

History

1 round 1 comment
sign up or login to add to the discussion
boltless.me submitted #0
1 commit
expand
appview/pages: embed hx-swap-oob to star button
2/3 failed, 1/3 success
expand
expand 1 comment
pull request successfully merged