diff --git a/appview/db/star.go b/appview/db/star.go index 86bc6fbe..0285c819 100644 --- a/appview/db/star.go +++ b/appview/db/star.go @@ -11,6 +11,7 @@ import ( "github.com/bluesky-social/indigo/atproto/syntax" "tangled.org/core/appview/models" + "tangled.org/core/appview/pagination" "tangled.org/core/orm" ) @@ -165,7 +166,7 @@ func GetStarStatuses(e Execer, userDid string, subjectAts []syntax.ATURI) (map[s // GetRepoStars return a list of stars each holding target repository. // If there isn't known repo with starred at-uri, those stars will be ignored. -func GetRepoStars(e Execer, limit int, filters ...orm.Filter) ([]models.RepoStar, error) { +func GetRepoStars(e Execer, page pagination.Page, filters ...orm.Filter) ([]models.RepoStar, error) { var conditions []string var args []any for _, filter := range filters { @@ -178,9 +179,9 @@ func GetRepoStars(e Execer, limit int, filters ...orm.Filter) ([]models.RepoStar whereClause = " where " + strings.Join(conditions, " and ") } - limitClause := "" - if limit != 0 { - limitClause = fmt.Sprintf(" limit %d", limit) + pageClause := "" + if page.Limit != 0 { + pageClause = fmt.Sprintf(" limit %d offset %d", page.Limit, page.Offset) } repoQuery := fmt.Sprintf( @@ -190,7 +191,7 @@ func GetRepoStars(e Execer, limit int, filters ...orm.Filter) ([]models.RepoStar order by created desc %s`, whereClause, - limitClause, + pageClause, ) rows, err := e.Query(repoQuery, args...) if err != nil { diff --git a/appview/db/timeline.go b/appview/db/timeline.go index e75c35d7..1da9ab61 100644 --- a/appview/db/timeline.go +++ b/appview/db/timeline.go @@ -151,7 +151,7 @@ func getTimelineStars(e Execer, limit int, loggedInUserDid string, userIsFollowi filters = append(filters, orm.FilterIn("did", userIsFollowing)) } - stars, err := GetRepoStars(e, limit, filters...) + stars, err := GetRepoStars(e, pagination.Page{Limit: limit}, filters...) if err != nil { return nil, err } diff --git a/appview/pages/pages.go b/appview/pages/pages.go index 541f34ef..f862a868 100644 --- a/appview/pages/pages.go +++ b/appview/pages/pages.go @@ -665,6 +665,8 @@ type ProfileStarredParams struct { LoggedInUser *oauth.MultiAccountUser Repos []models.Repo Card *ProfileCard + Page pagination.Page + Total int Active string } diff --git a/appview/pages/templates/user/starred.html b/appview/pages/templates/user/starred.html index c5e178cf..0e516c66 100644 --- a/appview/pages/templates/user/starred.html +++ b/appview/pages/templates/user/starred.html @@ -3,6 +3,15 @@ {{ define "profileContent" }}