Skip to content

Commit 885f0da

Browse files
authored
Fixed pagination on relationship table (#5959)
1 parent 77ab09f commit 885f0da

File tree

4 files changed

+31
-25
lines changed

4 files changed

+31
-25
lines changed

frontend/app/src/entities/nodes/relationships/api/get-object-relationships-from-api.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,16 @@ import {
77
addFiltersToRequest,
88
addRelationshipsToRequest,
99
} from "@/shared/api/graphql/utils";
10+
import { ContextParams, PaginationParams } from "@/shared/api/types";
1011
import { Filter } from "@/shared/hooks/useFilters";
1112
import { gql } from "@apollo/client";
1213
import { jsonToGraphQLQuery } from "json-to-graphql-query";
1314

14-
type GenerateObjectRelationshipsQueryParams = {
15+
type GenerateObjectRelationshipsQueryParams = PaginationParams & {
1516
parentKind: string;
1617
parentId: string;
1718
relationshipName: string;
1819
relationshipSchema: ModelSchema;
19-
limit?: number;
20-
offset?: number;
2120
filters?: Array<Filter>;
2221
};
2322

@@ -26,7 +25,7 @@ const generateObjectRelationshipsQuery = ({
2625
parentId,
2726
relationshipName,
2827
relationshipSchema,
29-
limit,
28+
limit = 0,
3029
offset = 0,
3130
filters,
3231
}: GenerateObjectRelationshipsQueryParams) => {
@@ -45,6 +44,8 @@ const generateObjectRelationshipsQuery = ({
4544
node: {
4645
[relationshipName]: {
4746
__args: {
47+
limit,
48+
offset,
4849
...(filters ? addFiltersToRequest(filters) : {}),
4950
},
5051
edges: {
@@ -73,10 +74,8 @@ const generateObjectRelationshipsQuery = ({
7374
return jsonToGraphQLQuery(request);
7475
};
7576

76-
export type GetObjectRelationshipsFromApiParams = GenerateObjectRelationshipsQueryParams & {
77-
branchName: string;
78-
atDate: Date | null;
79-
};
77+
export type GetObjectRelationshipsFromApiParams = ContextParams &
78+
GenerateObjectRelationshipsQueryParams;
8079

8180
export const getObjectRelationshipsFromApi = ({
8281
branchName,

frontend/app/src/entities/nodes/relationships/domain/get-object-relationships/get-object-relationships.query.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { getCurrentBranchName } from "@/entities/branches/domain/get-current-branch";
2-
import { OBJECTS_PER_PAGE } from "@/entities/nodes/object/domain/get-objects";
3-
import { getObjectRelationships } from "@/entities/nodes/relationships/domain/get-object-relationships/get-object-relationships";
2+
import {
3+
OBJECT_RELATIONSHIPS_PER_PAGE,
4+
getObjectRelationships,
5+
} from "@/entities/nodes/relationships/domain/get-object-relationships/get-object-relationships";
46
import { ModelSchema } from "@/entities/schema/types";
57
import { Filter } from "@/shared/hooks/useFilters";
68
import { store } from "@/shared/stores";
@@ -49,10 +51,10 @@ export function getObjectRelationshipsQueryOptions({
4951
},
5052
initialPageParam: 0,
5153
getNextPageParam: (lastPage, _, lastPageParam) => {
52-
if (lastPage.length < OBJECTS_PER_PAGE) {
54+
if (lastPage.length < OBJECT_RELATIONSHIPS_PER_PAGE) {
5355
return undefined;
5456
}
55-
return lastPageParam + OBJECTS_PER_PAGE;
57+
return lastPageParam + OBJECT_RELATIONSHIPS_PER_PAGE;
5658
},
5759
});
5860
}

frontend/app/src/entities/nodes/relationships/domain/get-object-relationships/get-object-relationships.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
import { getObjectRelationshipsFromApi } from "@/entities/nodes/relationships/api/get-object-relationships-from-api";
22
import { NodeObject } from "@/entities/nodes/types";
33
import { ModelSchema } from "@/entities/schema/types";
4+
import { ContextParams, PaginationParams } from "@/shared/api/types";
45
import { Filter } from "@/shared/hooks/useFilters";
56

6-
export type GetObjectRelationshipsParams = {
7-
parentKind: string;
8-
parentId: string;
9-
relationshipName: string;
10-
relationshipSchema: ModelSchema;
11-
branchName: string;
12-
atDate: Date | null;
13-
limit?: number;
14-
offset?: number;
15-
filters?: Array<Filter>;
16-
};
7+
////////////////////////////////////////////////////////////////////////////////////////////////////
8+
9+
export const OBJECT_RELATIONSHIPS_PER_PAGE = 40;
10+
11+
////////////////////////////////////////////////////////////////////////////////////////////////////
12+
13+
export type GetObjectRelationshipsParams = ContextParams &
14+
PaginationParams & {
15+
parentKind: string;
16+
parentId: string;
17+
relationshipName: string;
18+
relationshipSchema: ModelSchema;
19+
filters?: Array<Filter>;
20+
};
1721

1822
export type GetObjectRelationships = (
1923
params: GetObjectRelationshipsParams
@@ -22,11 +26,13 @@ export type GetObjectRelationships = (
2226
export const getObjectRelationships: GetObjectRelationships = async ({
2327
parentKind,
2428
relationshipName,
29+
limit = OBJECT_RELATIONSHIPS_PER_PAGE,
2530
...params
2631
}) => {
2732
const { data } = await getObjectRelationshipsFromApi({
2833
parentKind,
2934
relationshipName,
35+
limit,
3036
...params,
3137
});
3238

frontend/app/src/shared/components/table/style.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
export const cellsStyle =
2-
"flex items-center gap-1.5 p-2 text-sm h-10 bg-white disabled:bg-white max-w-lg";
1+
export const cellsStyle = "flex items-center gap-1.5 p-2 text-sm h-10 bg-white disabled:bg-white";
32

43
export const cellHeaderStyle = "z-[1] sticky top-0 border-r border-y hover:bg-gray-100 font-medium";
54

0 commit comments

Comments
 (0)