appview/pages: swap all star buttons for same repository #834

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

On timeline, if there is multiple cards for same repository including a star button, when user star/unstar the repository, only first #starBtn is swapped with new button.

This can be fixed by adding data-star-subject-at attr to identify all star buttons related to same repository and use hx-swap-oob to replace all of them.

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

Changed files
+2
appview
pages
templates
fragments
+2
appview/pages/templates/fragments/starBtn.html
··· 2 2 <button 3 3 id="starBtn" 4 4 class="btn disabled:opacity-50 disabled:cursor-not-allowed flex gap-2 items-center group" 5 + data-star-subject-at="{{ .SubjectAt }}" 5 6 {{ if .IsStarred }} 6 7 hx-delete="/star?subject={{ .SubjectAt }}&countHint={{ .StarCount }}" 7 8 {{ else }} ··· 11 12 hx-trigger="click" 12 13 hx-target="this" 13 14 hx-swap="outerHTML" 15 + hx-swap-oob='outerHTML:#starBtn[data-star-subject-at="{{ .SubjectAt }}"]' 14 16 hx-disabled-elt="#starBtn" 15 17 > 16 18 {{ if .IsStarred }}