Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[F] Use query params in admin #3653

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export default class ListEntitiesListPagination extends PureComponent {
pagination: PropTypes.object.isRequired,
onPageClick: PropTypes.func.isRequired,
paginationTarget: PropTypes.string,
usesQueryParams: PropTypes.bool,
style: PropTypes.oneOf(["normal", "compact"]),
padding: PropTypes.number
};
Expand Down Expand Up @@ -37,6 +38,8 @@ export default class ListEntitiesListPagination extends PureComponent {
}

get paginationTarget() {
if (this.props.usesQueryParams) return undefined;

return this.props.paginationTarget ?? "#";
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,7 @@ export default class ListEntities extends PureComponent {
padding={this.paginationPadding}
onPageClick={this.callback("onPageClick")}
style={this.paginationStyle}
usesQueryParams={this.props.usesQueryParams}
/>
)}
</div>
Expand Down
14 changes: 12 additions & 2 deletions client/src/backend/containers/entitlements-pending/List.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ import {
useFetch,
usePaginationState,
useFilterState,
useApiCallback
useApiCallback,
useSetLocation
} from "hooks";
import { childRoutes } from "helpers/router";
import withFilteredLists, { entitlementFilters } from "hoc/withFilteredLists";
Expand All @@ -38,6 +39,11 @@ function PendingEntitlementsList({
dependencies: [filters]
});

useSetLocation({
filters,
page: pagination.number
});

const renderChildRoutes = () => {
const closeUrl = lh.link("backendRecordsEntitlements");

Expand Down Expand Up @@ -138,8 +144,12 @@ function PendingEntitlementsList({
count: meta.pagination.totalCount
})}
callbacks={{
onPageClick: page => () => setPageNumber(page)
onPageClick: page => e => {
e.preventDefault();
setPageNumber(page);
}
}}
usesQueryParams
/>
</>
)}
Expand Down
12 changes: 10 additions & 2 deletions client/src/backend/containers/entitlements-pending/imports/List.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { entitlementImportsAPI } from "api";
import EntitiesList, {
EntitlementImportRow
} from "backend/components/list/EntitiesList";
import { useFetch, usePaginationState } from "hooks";
import { useFetch, usePaginationState, useSetLocation } from "hooks";
import PageHeader from "backend/components/layout/PageHeader";

export default function EntitlementImportsList() {
Expand All @@ -17,6 +17,10 @@ export default function EntitlementImportsList() {
request: [entitlementImportsAPI.index, null, pagination]
});

useSetLocation({
page: pagination.number
});

const actions = [
{
label: "entitlements.imports.view_pending_label",
Expand All @@ -41,8 +45,12 @@ export default function EntitlementImportsList() {
count: meta.pagination?.totalCount
})}
callbacks={{
onPageClick: page => () => setPageNumber(page)
onPageClick: page => e => {
e.preventDefault();
setPageNumber(page);
}
}}
usesQueryParams
/>
</>
) : null;
Expand Down
13 changes: 11 additions & 2 deletions client/src/backend/containers/journal/Issues.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import lh from "helpers/linkHandler";
import { childRoutes } from "helpers/router";
import { journalsAPI } from "api";
import { withRouter } from "react-router-dom";
import { useFetch, usePaginationState } from "hooks";
import { useFetch, usePaginationState, useSetLocation } from "hooks";
import EntitiesList, {
Button,
JournalIssueRow
Expand All @@ -23,6 +23,11 @@ function JournalIssuesContainer({ refresh, journal, route }) {
request: [journalsAPI.journalIssues, journal.id, pagination, filters]
});

useSetLocation({
filters,
page: pagination.number
});

const { t } = useTranslation();

if (!data) return null;
Expand All @@ -48,7 +53,10 @@ function JournalIssuesContainer({ refresh, journal, route }) {
pagination={meta.pagination}
showCount
callbacks={{
onPageClick: page => () => setPageNumber(page)
onPageClick: page => e => {
e.preventDefault();
setPageNumber(page);
}
}}
buttons={[
<Button
Expand All @@ -59,6 +67,7 @@ function JournalIssuesContainer({ refresh, journal, route }) {
authorizedTo="update"
/>
]}
usesQueryParams
/>
{childRoutes(route, {
drawer: true,
Expand Down
12 changes: 10 additions & 2 deletions client/src/backend/containers/journal/Volumes.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import lh from "helpers/linkHandler";
import { childRoutes } from "helpers/router";
import { journalVolumesAPI } from "api";
import { withRouter } from "react-router-dom";
import { useFetch, usePaginationState } from "hooks";
import { useFetch, usePaginationState, useSetLocation } from "hooks";
import EntitiesList, {
Button,
JournalVolumeRow
Expand All @@ -23,6 +23,10 @@ function JournalVolumesContainer({ refresh, journal, route }) {

const { t } = useTranslation();

useSetLocation({
page: pagination.number
});

if (!data) return null;

return (
Expand All @@ -45,7 +49,10 @@ function JournalVolumesContainer({ refresh, journal, route }) {
pagination={meta.pagination}
showCount
callbacks={{
onPageClick: page => () => setPageNumber(page)
onPageClick: page => e => {
e.preventDefault();
setPageNumber(page);
}
}}
buttons={[
<Button
Expand All @@ -55,6 +62,7 @@ function JournalVolumesContainer({ refresh, journal, route }) {
authorizedFor="journalVolume"
/>
]}
usesQueryParams
/>
{childRoutes(route, {
drawer: true,
Expand Down
13 changes: 11 additions & 2 deletions client/src/backend/containers/journals/List.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useMemo } from "react";
import { useTranslation } from "react-i18next";
import { useFetch, usePaginationState } from "hooks";
import { useFetch, usePaginationState, useSetLocation } from "hooks";
import { journalsAPI } from "api";
import withFilteredLists, { journalFilters } from "hoc/withFilteredLists";
import HeadContent from "global/components/HeadContent";
Expand All @@ -26,6 +26,11 @@ function JournalsList({ entitiesListSearchProps, entitiesListSearchParams }) {
request: [journalsAPI.index, journalFiltersWithDefaults, pagination]
});

useSetLocation({
filters: journalFiltersWithDefaults,
page: pagination.number
});

const { t } = useTranslation();

if (!data) return null;
Expand All @@ -50,7 +55,10 @@ function JournalsList({ entitiesListSearchProps, entitiesListSearchParams }) {
showCount
showCountInTitle
callbacks={{
onPageClick: page => () => setPageNumber(page)
onPageClick: page => e => {
e.preventDefault();
setPageNumber(page);
}
}}
buttons={[
<Button
Expand All @@ -60,6 +68,7 @@ function JournalsList({ entitiesListSearchProps, entitiesListSearchParams }) {
type="add"
/>
]}
usesQueryParams
/>
</>
);
Expand Down
Loading
Loading