1{{ define "fragments/star" }}
2 <button id="starBtn"
3 class="text-sm disabled:opacity-50 disabled:cursor-not-allowed"
4
5 {{ if .IsStarred }}
6 hx-delete="/star?subject={{.RepoAt}}&countHint={{.Stats.StarCount}}"
7 {{ else }}
8 hx-post="/star?subject={{.RepoAt}}&countHint={{.Stats.StarCount}}"
9 {{ end }}
10
11 hx-trigger="click"
12 hx-target="#starBtn"
13 hx-swap="outerHTML"
14 hx-disabled-elt="#starBtn"
15 >
16 <div class="flex gap-2 items-center">
17 {{ if .IsStarred }}
18 <span class="w-3 h-3 fill-current" data-lucide="star"></span>
19 {{ else }}
20 <span class="w-3 h-3" data-lucide="star"></span>
21 {{ end }}
22 <span>
23 {{ .Stats.StarCount }}
24 </span>
25 </div>
26 </button>
27 <script>
28 document.body.addEventListener('htmx:afterRequest', function (evt) {
29 lucide.createIcons();
30 });
31 </script>
32{{ end }}
33