diff --git a/app/scenes/Settings/People.js b/app/scenes/Settings/People.js index af2c48de5..7b670ef03 100644 --- a/app/scenes/Settings/People.js +++ b/app/scenes/Settings/People.js @@ -6,6 +6,7 @@ import * as React from "react"; import { Trans, useTranslation } from "react-i18next"; import { useHistory, useLocation } from "react-router-dom"; import scrollIntoView from "smooth-scroll-into-view-if-needed"; +import { PAGINATION_SYMBOL } from "stores/BaseStore"; import Invite from "scenes/Invite"; import { Action } from "components/Actions"; import Button from "components/Button"; @@ -56,8 +57,8 @@ function People(props) { filter, }); - setTotalPages(Math.ceil(response.pagination.total / limit)); - setUserIds(response.data.map((u) => u.id)); + setTotalPages(Math.ceil(response[PAGINATION_SYMBOL].total / limit)); + setUserIds(response.map((u) => u.id)); } finally { setIsLoading(false); } diff --git a/app/stores/BaseStore.js b/app/stores/BaseStore.js index 3811d7e34..58dc071f5 100644 --- a/app/stores/BaseStore.js +++ b/app/stores/BaseStore.js @@ -15,6 +15,8 @@ function modelNameFromClassName(string) { export const DEFAULT_PAGINATION_LIMIT = 25; +export const PAGINATION_SYMBOL = Symbol.for("pagination"); + export default class BaseStore { @observable data: Map = new Map(); @observable isFetching: boolean = false; @@ -175,7 +177,10 @@ export default class BaseStore { res.data.forEach(this.add); this.isLoaded = true; }); - return res; + + let response = res.data; + response[PAGINATION_SYMBOL] = res.pagination; + return response; } finally { this.isFetching = false; }