diff --git a/changelog/4434.fixed.md b/changelog/4434.fixed.md new file mode 100644 index 0000000000..27c1026b49 --- /dev/null +++ b/changelog/4434.fixed.md @@ -0,0 +1 @@ +Fixes the tasks pagination in the proposed changes tab \ No newline at end of file diff --git a/frontend/app/src/graphql/queries/tasks/getTasksItems.ts b/frontend/app/src/graphql/queries/tasks/getTasksItems.ts index c298fe9421..b534692429 100644 --- a/frontend/app/src/graphql/queries/tasks/getTasksItems.ts +++ b/frontend/app/src/graphql/queries/tasks/getTasksItems.ts @@ -1,8 +1,8 @@ import Handlebars from "handlebars"; export const getTasksItems = Handlebars.compile(` -query GetTasks { - {{kind}}({{{filters}}} {{#if relatedNode}}related_node__ids: ["{{relatedNode}}"]{{/if}}) { +query GetTasks($offset: Int, $limit: Int) { + {{kind}}(offset: $offset, limit: $limit, {{#if relatedNode}}related_node__ids: ["{{relatedNode}}"]{{/if}}) { count edges { node { diff --git a/frontend/app/src/pages/proposed-changes/details.tsx b/frontend/app/src/pages/proposed-changes/details.tsx index 3e82b76a46..30b2da10e7 100644 --- a/frontend/app/src/pages/proposed-changes/details.tsx +++ b/frontend/app/src/pages/proposed-changes/details.tsx @@ -17,17 +17,17 @@ import { proposedChangedState } from "@/state/atoms/proposedChanges.atom"; import { constructPath } from "@/utils/fetch"; import { Icon } from "@iconify-icon/react"; import { useAtom } from "jotai"; -import { Link, Navigate, useLocation, useParams } from "react-router-dom"; +import { Link, useLocation, useParams } from "react-router-dom"; import { StringParam, useQueryParam } from "use-query-params"; import LoadingScreen from "@/screens/loading-screen/loading-screen"; import { ProposedChangesChecksTab } from "@/screens/proposed-changes/checks-tab"; import { ProposedChangeDetails } from "@/screens/proposed-changes/proposed-change-details"; -import { NetworkStatus } from "@apollo/client"; import { CoreProposedChange } from "@/generated/graphql"; import { Badge } from "@/components/ui/badge"; import { getObjectDetailsUrl } from "@/utils/objects"; import { ObjectHelpButton } from "@/components/menu/object-help-button"; import { useSchema } from "@/hooks/useSchema"; +import NoDataFound from "@/screens/errors/no-data-found"; export const PROPOSED_CHANGES_TABS = { CONVERSATIONS: "conversations", @@ -105,30 +105,19 @@ export function Component() { const { proposedChangeId } = useParams(); const { schema } = useSchema(PROPOSED_CHANGES_OBJECT); - const { loading, networkStatus, error, data, client } = useQuery(GET_PROPOSED_CHANGE_DETAILS, { - notifyOnNetworkStatusChange: true, + const { loading, error, data, client } = useQuery(GET_PROPOSED_CHANGE_DETAILS, { variables: { id: proposedChangeId, nodeId: proposedChangeId, // Used for tasks, which is a different type }, }); - if (networkStatus === NetworkStatus.loading) { + if (loading) { return ; } - if (error) { - return ( - - ); - } - const proposedChangesData = data?.[PROPOSED_CHANGES_OBJECT]?.edges?.[0]?.node; - if (!proposedChangesData) { - return ; - } - const tabs = [ { label: "Overview", @@ -162,6 +151,37 @@ export function Component() { }, ]; + if (error || !proposedChangesData) { + return ( + + + + Proposed changes + + + } + reload={() => client.reFetchObservableQueries()} + isReloadLoading={loading}> + + + + {error && ( + + )} + + {!proposedChangesData && } + + ); + } + return ( { const { objectid, proposedChangeId } = useParams(); const location = useLocation(); - const [pagination] = usePagination(); const { pathname } = location; - const filtersString = [ - // Add pagination filters - ...[ - { name: "offset", value: pagination?.offset }, - { name: "limit", value: pagination?.limit }, - ].map((row: any) => `${row.name}: ${row.value}`), - ].join(","); - const queryString = getTasksItems({ kind: TASK_OBJECT, relatedNode: objectid || proposedChangeId, - filters: filtersString, }); const query = gql`