diff --git a/appview/issues/issues.go b/appview/issues/issues.go index 1788e189..1d8d6a21 100644 --- a/appview/issues/issues.go +++ b/appview/issues/issues.go @@ -99,6 +99,9 @@ func (rp *Issues) RepoSingleIssue(w http.ResponseWriter, r *http.Request) { } entities := []syntax.ATURI{issue.AtUri()} + for _, c := range issue.Comments { + entities = append(entities, c.AtUri()) + } reactions, err := db.ListReactionDisplayDataMap(rp.db, entities, 20) if err != nil { l.Error("failed to get reactions", "err", err) diff --git a/appview/pages/funcmap.go b/appview/pages/funcmap.go index ca4985fc..fe2d6b63 100644 --- a/appview/pages/funcmap.go +++ b/appview/pages/funcmap.go @@ -23,6 +23,7 @@ import ( chromahtml "github.com/alecthomas/chroma/v2/formatters/html" "github.com/alecthomas/chroma/v2/lexers" "github.com/alecthomas/chroma/v2/styles" + "github.com/bluesky-social/indigo/atproto/syntax" "github.com/dustin/go-humanize" "github.com/go-enry/go-enry/v2" "github.com/yuin/goldmark" @@ -487,6 +488,22 @@ func (p *Pages) funcMap() template.FuncMap { "isGenerated": func(path string) bool { return enry.IsGenerated(path, nil) }, + // NOTE(boltless): I know... I hate doing this too + "asReactionMapMap": func(dict any) map[syntax.ATURI]map[models.ReactionKind]models.ReactionDisplayData { + if dict == nil { + return make(map[syntax.ATURI]map[models.ReactionKind]models.ReactionDisplayData) + } + m, _ := dict.(map[syntax.ATURI]map[models.ReactionKind]models.ReactionDisplayData) + return m + }, + "asReactionStatusMapMap": func(dict any) map[syntax.ATURI]map[models.ReactionKind]bool { + if dict == nil { + log.Println("returning empty map") + return make(map[syntax.ATURI]map[models.ReactionKind]bool) + } + m, _ := dict.(map[syntax.ATURI]map[models.ReactionKind]bool) + return m + }, // constant values used to define a template "const": func() map[string]any { return map[string]any{ diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 6787bc5c..f12d66bd 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -1152,7 +1152,6 @@ func (p *Pages) EditIssueFragment(w io.Writer, params EditIssueParams) error { } type ThreadReactionFragmentParams struct { - ThreadAt syntax.ATURI Kind models.ReactionKind Count int Users []string @@ -1599,6 +1598,8 @@ type SingleStringParams struct { StarCount int Owner identity.Identity CommentList []models.CommentListItem + Reactions map[syntax.ATURI]map[models.ReactionKind]models.ReactionDisplayData + UserReacted map[syntax.ATURI]map[models.ReactionKind]bool } func (p *Pages) SingleString(w io.Writer, params SingleStringParams) error { diff --git a/appview/pages/templates/fragments/comment/commentBody.html b/appview/pages/templates/fragments/comment/commentBody.html index 1fcfe931..59ac3e2a 100644 --- a/appview/pages/templates/fragments/comment/commentBody.html +++ b/appview/pages/templates/fragments/comment/commentBody.html @@ -2,6 +2,10 @@