Skip to content

Commit 6f426b3

Browse files
committed
Load 100 jobs
1 parent 131983e commit 6f426b3

File tree

3 files changed

+25
-23
lines changed

3 files changed

+25
-23
lines changed

site/src/api/api.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,11 @@ export class MissingBuildParameters extends Error {
397397
}
398398
}
399399

400+
export type GetProvisionerJobsParams = {
401+
status?: TypesGen.ProvisionerJobStatus;
402+
limit?: number;
403+
};
404+
400405
/**
401406
* This is the container for all API methods. It's split off to make it more
402407
* clear where API methods should go, but it is eventually merged into the Api
@@ -2394,14 +2399,11 @@ class ApiMethods {
23942399

23952400
getProvisionerJobs = async (
23962401
orgId: string,
2397-
status?: TypesGen.ProvisionerJobStatus,
2402+
params: GetProvisionerJobsParams = {},
23982403
) => {
2399-
const params = new URLSearchParams();
2400-
if (status) {
2401-
params.append("status", status);
2402-
}
24032404
const res = await this.axios.get<TypesGen.ProvisionerJob[]>(
2404-
`/api/v2/organizations/${orgId}/provisionerjobs?${params.toString()}`,
2405+
`/api/v2/organizations/${orgId}/provisionerjobs`,
2406+
{ params },
24052407
);
24062408
return res.data;
24072409
};

site/src/api/queries/organizations.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { API } from "api/api";
1+
import { API, type GetProvisionerJobsParams } from "api/api";
22
import type {
33
CreateOrganizationRequest,
44
GroupSyncSettings,
@@ -237,20 +237,18 @@ export const patchRoleSyncSettings = (
237237
};
238238
};
239239

240-
export const provisionerJobsQueryKey = (orgId: string, status?: string) => [
241-
"organization",
242-
orgId,
243-
"provisionerjobs",
244-
status,
245-
];
240+
export const provisionerJobsQueryKey = (
241+
orgId: string,
242+
params: GetProvisionerJobsParams = {},
243+
) => ["organization", orgId, "provisionerjobs", params];
246244

247245
export const provisionerJobs = (
248246
orgId: string,
249-
status?: ProvisionerJobStatus,
247+
params: GetProvisionerJobsParams = {},
250248
) => {
251249
return {
252-
queryKey: provisionerJobsQueryKey(orgId, status),
253-
queryFn: () => API.getProvisionerJobs(orgId, status),
250+
queryKey: provisionerJobsQueryKey(orgId, params),
251+
queryFn: () => API.getProvisionerJobs(orgId, params),
254252
};
255253
};
256254

site/src/pages/OrganizationSettingsPage/OrganizationProvisionerJobsPage/OrganizationProvisionerJobsPage.tsx

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@ import type { FC } from "react";
55
import { useQuery } from "react-query";
66
import { useSearchParams } from "react-router-dom";
77
import OrganizationProvisionerJobsPageView from "./OrganizationProvisionerJobsPageView";
8+
import type { GetProvisionerJobsParams } from "api/api";
89

910
const OrganizationProvisionerJobsPage: FC = () => {
1011
const { organization } = useOrganizationSettings();
11-
const [params, setParams] = useSearchParams();
12+
const [searchParams, setSearchParams] = useSearchParams();
1213
const filter = {
13-
status: params.get("status") || "",
14+
status: searchParams.get("status") || "",
1415
};
16+
const queryParams = {
17+
...filter,
18+
limit: 100,
19+
} as GetProvisionerJobsParams;
1520
const {
1621
data: jobs,
1722
isLoadingError,
1823
refetch,
1924
} = useQuery({
20-
...provisionerJobs(
21-
organization?.id || "",
22-
filter.status as ProvisionerJobStatus,
23-
),
25+
...provisionerJobs(organization?.id || "", queryParams),
2426
enabled: organization !== undefined,
2527
});
2628

@@ -31,7 +33,7 @@ const OrganizationProvisionerJobsPage: FC = () => {
3133
organization={organization}
3234
error={isLoadingError}
3335
onRetry={refetch}
34-
onFilterChange={setParams}
36+
onFilterChange={setSearchParams}
3537
/>
3638
);
3739
};

0 commit comments

Comments
 (0)