Fix limit pagination (#2692)
* Fix limit parameter * Increaze max_row for each workspaces
This commit is contained in:
@ -25,6 +25,7 @@ import { ViewType } from '@/views/types/ViewType';
|
|||||||
import { mapViewFieldsToBoardFieldDefinitions } from '@/views/utils/mapViewFieldsToBoardFieldDefinitions';
|
import { mapViewFieldsToBoardFieldDefinitions } from '@/views/utils/mapViewFieldsToBoardFieldDefinitions';
|
||||||
import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters';
|
import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters';
|
||||||
import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
|
import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
|
||||||
|
import { isDefined } from '~/utils/isDefined';
|
||||||
|
|
||||||
import { useUpdateCompanyBoardCardIds } from '../hooks/useUpdateBoardCardIds';
|
import { useUpdateCompanyBoardCardIds } from '../hooks/useUpdateBoardCardIds';
|
||||||
import { useUpdateCompanyBoard } from '../hooks/useUpdateCompanyBoardColumns';
|
import { useUpdateCompanyBoard } from '../hooks/useUpdateCompanyBoardColumns';
|
||||||
@ -98,27 +99,34 @@ export const HooksCompanyBoardEffect = () => {
|
|||||||
objectMetadataItem?.fields ?? [],
|
objectMetadataItem?.fields ?? [],
|
||||||
);
|
);
|
||||||
|
|
||||||
useFindManyObjectRecords({
|
const { fetchMoreObjects: fetchMoreOpportunities } = useFindManyObjectRecords(
|
||||||
skip: !pipelineSteps.length,
|
{
|
||||||
objectNamePlural: 'opportunities',
|
skip: !pipelineSteps.length,
|
||||||
filter: filter,
|
objectNamePlural: 'opportunities',
|
||||||
orderBy: orderBy,
|
filter: filter,
|
||||||
onCompleted: useCallback(
|
orderBy: orderBy,
|
||||||
(data: PaginatedObjectTypeResults<Opportunity>) => {
|
onCompleted: useCallback(
|
||||||
const pipelineProgresses: Array<Opportunity> = data.edges.map(
|
(data: PaginatedObjectTypeResults<Opportunity>) => {
|
||||||
(edge) => edge.node,
|
const pipelineProgresses: Array<Opportunity> = data.edges.map(
|
||||||
);
|
(edge) => edge.node,
|
||||||
|
);
|
||||||
|
|
||||||
updateCompanyBoardCardIds(pipelineProgresses);
|
updateCompanyBoardCardIds(pipelineProgresses);
|
||||||
|
|
||||||
setOpportunities(pipelineProgresses);
|
setOpportunities(pipelineProgresses);
|
||||||
setIsBoardLoaded(true);
|
setIsBoardLoaded(true);
|
||||||
},
|
},
|
||||||
[setIsBoardLoaded, updateCompanyBoardCardIds],
|
[setIsBoardLoaded, updateCompanyBoardCardIds],
|
||||||
),
|
),
|
||||||
});
|
},
|
||||||
|
);
|
||||||
|
useEffect(() => {
|
||||||
|
if (isDefined(fetchMoreOpportunities)) {
|
||||||
|
fetchMoreOpportunities();
|
||||||
|
}
|
||||||
|
}, [fetchMoreOpportunities]);
|
||||||
|
|
||||||
useFindManyObjectRecords({
|
const { fetchMoreObjects: fetchMoreCompanies } = useFindManyObjectRecords({
|
||||||
skip: !opportunities.length,
|
skip: !opportunities.length,
|
||||||
objectNamePlural: 'companies',
|
objectNamePlural: 'companies',
|
||||||
filter: {
|
filter: {
|
||||||
@ -131,6 +139,12 @@ export const HooksCompanyBoardEffect = () => {
|
|||||||
}, []),
|
}, []),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (isDefined(fetchMoreCompanies)) {
|
||||||
|
fetchMoreCompanies();
|
||||||
|
}
|
||||||
|
}, [fetchMoreCompanies]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!objectMetadataItem) {
|
if (!objectMetadataItem) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import { useOptimisticEffect } from '@/apollo/optimistic-effect/hooks/useOptimis
|
|||||||
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
||||||
import { ObjectMetadataItemIdentifier } from '@/object-metadata/types/ObjectMetadataItemIdentifier';
|
import { ObjectMetadataItemIdentifier } from '@/object-metadata/types/ObjectMetadataItemIdentifier';
|
||||||
import { getRecordOptimisticEffectDefinition } from '@/object-record/graphql/optimistic-effect-definition/getRecordOptimisticEffectDefinition';
|
import { getRecordOptimisticEffectDefinition } from '@/object-record/graphql/optimistic-effect-definition/getRecordOptimisticEffectDefinition';
|
||||||
|
import { DEFAULT_SEARCH_REQUEST_LIMIT } from '@/search/hooks/useFilteredSearchEntityQuery';
|
||||||
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
||||||
import { logError } from '~/utils/logError';
|
import { logError } from '~/utils/logError';
|
||||||
import { capitalize } from '~/utils/string/capitalize';
|
import { capitalize } from '~/utils/string/capitalize';
|
||||||
@ -30,7 +31,7 @@ export const useFindManyObjectRecords = <
|
|||||||
objectNamePlural,
|
objectNamePlural,
|
||||||
filter,
|
filter,
|
||||||
orderBy,
|
orderBy,
|
||||||
limit,
|
limit = DEFAULT_SEARCH_REQUEST_LIMIT,
|
||||||
onCompleted,
|
onCompleted,
|
||||||
skip,
|
skip,
|
||||||
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'> & {
|
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'> & {
|
||||||
@ -72,8 +73,8 @@ export const useFindManyObjectRecords = <
|
|||||||
skip: skip || !objectMetadataItem || !objectNamePlural,
|
skip: skip || !objectMetadataItem || !objectNamePlural,
|
||||||
variables: {
|
variables: {
|
||||||
filter: filter ?? {},
|
filter: filter ?? {},
|
||||||
|
limit: limit,
|
||||||
orderBy: orderBy ?? {},
|
orderBy: orderBy ?? {},
|
||||||
limit: limit ?? 30,
|
|
||||||
},
|
},
|
||||||
onCompleted: (data) => {
|
onCompleted: (data) => {
|
||||||
if (objectMetadataItem) {
|
if (objectMetadataItem) {
|
||||||
|
|||||||
@ -15,7 +15,7 @@ export type OrderBy =
|
|||||||
| 'AscNullsFirst'
|
| 'AscNullsFirst'
|
||||||
| 'DescNullsFirst';
|
| 'DescNullsFirst';
|
||||||
|
|
||||||
const DEFAULT_SEARCH_REQUEST_LIMIT = 30;
|
export const DEFAULT_SEARCH_REQUEST_LIMIT = 60;
|
||||||
|
|
||||||
// TODO: use this for all search queries, because we need selectedEntities and entitiesToSelect each time we want to search
|
// TODO: use this for all search queries, because we need selectedEntities and entitiesToSelect each time we want to search
|
||||||
// Filtered entities to select are
|
// Filtered entities to select are
|
||||||
|
|||||||
@ -50,6 +50,8 @@ export class WorkspaceManagerService {
|
|||||||
schemaName,
|
schemaName,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
await this.setWorkspaceMaxRow(workspaceId, schemaName);
|
||||||
|
|
||||||
await this.workspaceMigrationService.insertStandardMigrations(workspaceId);
|
await this.workspaceMigrationService.insertStandardMigrations(workspaceId);
|
||||||
|
|
||||||
await this.workspaceMigrationRunnerService.executeMigrationFromPendingMigrations(
|
await this.workspaceMigrationRunnerService.executeMigrationFromPendingMigrations(
|
||||||
@ -217,6 +219,23 @@ export class WorkspaceManagerService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* We are updating the pg_graphql max_rows from 30 (default value) to 60
|
||||||
|
*
|
||||||
|
* @params workspaceId, schemaName
|
||||||
|
* @param workspaceId
|
||||||
|
*/
|
||||||
|
private async setWorkspaceMaxRow(workspaceId, schemaName) {
|
||||||
|
const workspaceDataSource =
|
||||||
|
await this.workspaceDataSourceService.connectToWorkspaceDataSource(
|
||||||
|
workspaceId,
|
||||||
|
);
|
||||||
|
await workspaceDataSource.query(
|
||||||
|
`comment on schema ${schemaName} is e'@graphql({"max_rows": 60})'`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* We are prefilling a few standard objects with data to make it easier for the user to get started.
|
* We are prefilling a few standard objects with data to make it easier for the user to get started.
|
||||||
|
|||||||
Reference in New Issue
Block a user