Merge pull request #25899 from drodil/offset_pagination
feat: allow offset mode pagination in entity list
This commit is contained in:
@@ -117,7 +117,10 @@ const routes = (
|
||||
<Route path="/home" element={<HomepageCompositionRoot />}>
|
||||
{homePage}
|
||||
</Route>
|
||||
<Route path="/catalog" element={<CatalogIndexPage />} />
|
||||
<Route
|
||||
path="/catalog"
|
||||
element={<CatalogIndexPage pagination={{ mode: 'offset', limit: 20 }} />}
|
||||
/>
|
||||
<Route
|
||||
path="/catalog/:namespace/:kind/:name"
|
||||
element={<CatalogEntityPage />}
|
||||
|
||||
@@ -269,6 +269,7 @@ export type QueryEntitiesCursorRequest = {
|
||||
export type QueryEntitiesInitialRequest = {
|
||||
fields?: string[];
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
filter?: EntityFilterQuery;
|
||||
orderFields?: EntityOrderQuery;
|
||||
fullTextFilter?: {
|
||||
|
||||
@@ -191,6 +191,7 @@ export class CatalogClient implements CatalogApi {
|
||||
fields = [],
|
||||
filter,
|
||||
limit,
|
||||
offset,
|
||||
orderFields,
|
||||
fullTextFilter,
|
||||
} = request;
|
||||
@@ -199,6 +200,9 @@ export class CatalogClient implements CatalogApi {
|
||||
if (limit !== undefined) {
|
||||
params.limit = limit;
|
||||
}
|
||||
if (offset !== undefined) {
|
||||
params.offset = offset;
|
||||
}
|
||||
if (orderFields !== undefined) {
|
||||
params.orderField = (
|
||||
Array.isArray(orderFields) ? orderFields : [orderFields]
|
||||
|
||||
@@ -247,6 +247,7 @@ export class DefaultApiClient {
|
||||
query: {
|
||||
fields?: Array<string>;
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
orderField?: Array<string>;
|
||||
cursor?: string;
|
||||
filter?: Array<string>;
|
||||
@@ -258,7 +259,7 @@ export class DefaultApiClient {
|
||||
): Promise<TypedResponse<EntitiesQueryResponse>> {
|
||||
const baseUrl = await this.discoveryApi.getBaseUrl(pluginId);
|
||||
|
||||
const uriTemplate = `/entities/by-query{?fields,limit,orderField*,cursor,filter*,fullTextFilterTerm,fullTextFilterFields}`;
|
||||
const uriTemplate = `/entities/by-query{?fields,limit,offset,orderField*,cursor,filter*,fullTextFilterTerm,fullTextFilterFields}`;
|
||||
|
||||
const uri = parser.parse(uriTemplate).expand({
|
||||
...request.query,
|
||||
|
||||
@@ -412,6 +412,7 @@ export type QueryEntitiesRequest =
|
||||
export type QueryEntitiesInitialRequest = {
|
||||
fields?: string[];
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
filter?: EntityFilterQuery;
|
||||
orderFields?: EntityOrderQuery;
|
||||
fullTextFilter?: {
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
import {
|
||||
QueryEntitiesCursorRequest,
|
||||
QueryEntitiesInitialRequest,
|
||||
QueryEntitiesRequest,
|
||||
} from './types/api';
|
||||
|
||||
export function isQueryEntitiesInitialRequest(
|
||||
@@ -25,9 +24,3 @@ export function isQueryEntitiesInitialRequest(
|
||||
): request is QueryEntitiesInitialRequest {
|
||||
return !(request as QueryEntitiesCursorRequest).cursor;
|
||||
}
|
||||
|
||||
export function isQueryEntitiesCursorRequest(
|
||||
request: QueryEntitiesRequest,
|
||||
): request is QueryEntitiesCursorRequest {
|
||||
return !isQueryEntitiesInitialRequest(request);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user