feat: prototype infinite scroll implementation

This commit is contained in:
Christoph Kluge
2024-03-26 15:56:07 +01:00
parent ddd3fad1c6
commit b9b452f043
6 changed files with 152 additions and 111 deletions

View File

@@ -2,7 +2,7 @@ package graph
// This file will be automatically regenerated based on the schema, any resolver implementations
// will be copied through when generating and any unknown code will be moved to the end.
// Code generated by github.com/99designs/gqlgen version v0.17.40
// Code generated by github.com/99designs/gqlgen version v0.17.45
import (
"context"
@@ -234,13 +234,26 @@ func (r *queryResolver) Jobs(ctx context.Context, filter []*model.JobFilter, pag
return nil, err
}
hasNextPage := false
nextPage := page
nextPage.Page += 1
nextJobs, err := r.Repo.QueryJobs(ctx, filter, nextPage, order)
if err != nil {
log.Warn("Error while querying next jobs")
return nil, err
}
if len(nextJobs) > 0 {
hasNextPage = true
}
count, err := r.Repo.CountJobs(ctx, filter)
if err != nil {
log.Warn("Error while counting jobs")
return nil, err
}
return &model.JobResultList{Items: jobs, Count: &count}, nil
return &model.JobResultList{Items: jobs, Count: &count, HasNextPage: hasNextPage}, nil
}
// JobsStatistics is the resolver for the jobsStatistics field.