diff --git a/app/scenes/Collection/MembershipPreview.tsx b/app/scenes/Collection/MembershipPreview.tsx index 0d8edb0f3..7998586d2 100644 --- a/app/scenes/Collection/MembershipPreview.tsx +++ b/app/scenes/Collection/MembershipPreview.tsx @@ -12,9 +12,10 @@ import useStores from "~/hooks/useStores"; type Props = { collection: Collection; + limit?: number; }; -const MembershipPreview = ({ collection }: Props) => { +const MembershipPreview = ({ collection, limit = 8 }: Props) => { const [isLoading, setIsLoading] = React.useState(false); const [totalMemberships, setTotalMemberships] = React.useState(0); const { t } = useTranslation(); @@ -32,7 +33,7 @@ const MembershipPreview = ({ collection }: Props) => { try { const options = { id: collection.id, - limit: 8, + limit, }; const [users, groups] = await Promise.all([ memberships.fetchPage(options), @@ -52,6 +53,7 @@ const MembershipPreview = ({ collection }: Props) => { collection.id, collectionGroupMemberships, memberships, + limit, ]); if (isLoading || collection.permission) { @@ -72,7 +74,7 @@ const MembershipPreview = ({ collection }: Props) => { height="auto" > - + ); diff --git a/server/routes/api/collections.ts b/server/routes/api/collections.ts index 93637705c..bf0cd4bf5 100644 --- a/server/routes/api/collections.ts +++ b/server/routes/api/collections.ts @@ -316,21 +316,25 @@ router.post( where = { ...where, permission }; } + const options = { + where, + include: [ + { + model: Group, + as: "group", + where: groupWhere, + required: true, + }, + ], + }; + const [total, memberships] = await Promise.all([ - CollectionGroup.count({ where }), + CollectionGroup.count(options), CollectionGroup.findAll({ - where, + ...options, order: [["createdAt", "DESC"]], offset: ctx.state.pagination.offset, limit: ctx.state.pagination.limit, - include: [ - { - model: Group, - as: "group", - where: groupWhere, - required: true, - }, - ], }), ]); @@ -461,21 +465,25 @@ router.post("collections.memberships", auth(), pagination(), async (ctx) => { where = { ...where, permission }; } + const options = { + where, + include: [ + { + model: User, + as: "user", + where: userWhere, + required: true, + }, + ], + }; + const [total, memberships] = await Promise.all([ - CollectionUser.count({ where }), + CollectionUser.count(options), CollectionUser.findAll({ - where, + ...options, order: [["createdAt", "DESC"]], offset: ctx.state.pagination.offset, limit: ctx.state.pagination.limit, - include: [ - { - model: User, - as: "user", - where: userWhere, - required: true, - }, - ], }), ]);