Skip to content

Commit 3217b09

Browse files
committed
refactor(ui): Refactor repositories/$repositoryId route and index page
Also refactor the page that is functioning only as a redirection component that redirects either to the newest run results of the repository, or to ORT run creation form, in case no runs exist yet for the repository. Signed-off-by: Jyrki Keisala <[email protected]>
1 parent fa246bb commit 3217b09

File tree

3 files changed

+48
-42
lines changed

3 files changed

+48
-42
lines changed

ui/src/routes/organizations/$orgId/products/$productId/repositories/$repoId/_repo-layout/runs/index.tsx

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,10 @@
1717
* License-Filename: LICENSE
1818
*/
1919

20+
import { useQuery } from '@tanstack/react-query';
2021
import { createFileRoute, Link } from '@tanstack/react-router';
2122
import { PlusIcon } from 'lucide-react';
2223

23-
import { useRepositoriesServiceGetApiV1RepositoriesByRepositoryId } from '@/api/queries';
24-
import {
25-
prefetchUseRepositoriesServiceGetApiV1RepositoriesByRepositoryId,
26-
prefetchUseRepositoriesServiceGetApiV1RepositoriesByRepositoryIdRuns,
27-
} from '@/api/queries/prefetch';
2824
import { JobDurations } from '@/components/charts/job-durations';
2925
import { LoadingIndicator } from '@/components/loading-indicator';
3026
import { ToastError } from '@/components/toast-error';
@@ -36,6 +32,10 @@ import {
3632
CardHeader,
3733
CardTitle,
3834
} from '@/components/ui/card';
35+
import {
36+
getOrtRunsByRepositoryIdOptions,
37+
getRepositoryByIdOptions,
38+
} from '@/hey-api/@tanstack/react-query.gen';
3939
import { toast } from '@/lib/toast';
4040
import { getRepositoryTypeLabel } from '@/lib/types';
4141
import { paginationSearchParameterSchema } from '@/schemas';
@@ -56,8 +56,10 @@ const RepositoryRunsComponent = () => {
5656
error: repoError,
5757
isPending: repoIsPending,
5858
isError: repoIsError,
59-
} = useRepositoriesServiceGetApiV1RepositoriesByRepositoryId({
60-
repositoryId: Number.parseInt(params.repoId),
59+
} = useQuery({
60+
...getRepositoryByIdOptions({
61+
path: { repositoryId: Number.parseInt(params.repoId) },
62+
}),
6163
});
6264

6365
if (repoIsPending) {
@@ -146,23 +148,27 @@ export const Route = createFileRoute(
146148
)({
147149
validateSearch: paginationSearchParameterSchema,
148150
loaderDeps: ({ search: { page, pageSize } }) => ({ page, pageSize }),
149-
loader: async ({ context, params, deps: { page, pageSize } }) => {
151+
loader: async ({
152+
context: { queryClient },
153+
params,
154+
deps: { page, pageSize },
155+
}) => {
150156
await Promise.allSettled([
151-
prefetchUseRepositoriesServiceGetApiV1RepositoriesByRepositoryId(
152-
context.queryClient,
153-
{
154-
repositoryId: Number.parseInt(params.repoId),
155-
}
156-
),
157-
prefetchUseRepositoriesServiceGetApiV1RepositoriesByRepositoryIdRuns(
158-
context.queryClient,
159-
{
160-
repositoryId: Number.parseInt(params.repoId),
161-
limit: pageSize || defaultPageSize,
162-
offset: page ? (page - 1) * (pageSize || defaultPageSize) : 0,
163-
sort: '-index',
164-
}
165-
),
157+
queryClient.prefetchQuery({
158+
...getRepositoryByIdOptions({
159+
path: { repositoryId: Number.parseInt(params.repoId) },
160+
}),
161+
}),
162+
queryClient.prefetchQuery({
163+
...getOrtRunsByRepositoryIdOptions({
164+
path: { repositoryId: Number.parseInt(params.repoId) },
165+
query: {
166+
limit: pageSize || defaultPageSize,
167+
offset: page ? (page - 1) * (pageSize || defaultPageSize) : 0,
168+
sort: '-index',
169+
},
170+
}),
171+
}),
166172
]);
167173
},
168174
component: RepositoryRunsComponent,

ui/src/routes/organizations/$orgId/products/$productId/repositories/$repoId/index.tsx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@
1717
* License-Filename: LICENSE
1818
*/
1919

20+
import { useQuery } from '@tanstack/react-query';
2021
import { createFileRoute, useNavigate } from '@tanstack/react-router';
2122

22-
import { useRepositoriesServiceGetApiV1RepositoriesByRepositoryIdRuns } from '@/api/queries';
2323
import { LoadingIndicator } from '@/components/loading-indicator';
2424
import { ToastError } from '@/components/toast-error';
25+
import { getOrtRunsByRepositoryIdOptions } from '@/hey-api/@tanstack/react-query.gen';
2526
import { toast } from '@/lib/toast';
2627

2728
const RunRedirectComponent = () => {
@@ -33,15 +34,18 @@ const RunRedirectComponent = () => {
3334
isPending,
3435
isError,
3536
error,
36-
} = useRepositoriesServiceGetApiV1RepositoriesByRepositoryIdRuns(
37-
{
38-
repositoryId: Number.parseInt(params.repoId),
39-
limit: 1,
40-
sort: '-index',
41-
},
42-
undefined,
43-
{ staleTime: 1000 }
44-
);
37+
} = useQuery({
38+
...getOrtRunsByRepositoryIdOptions({
39+
path: {
40+
repositoryId: Number.parseInt(params.repoId),
41+
},
42+
query: {
43+
limit: 1,
44+
sort: '-index',
45+
},
46+
}),
47+
staleTime: 1000,
48+
});
4549

4650
if (isPending) {
4751
return <LoadingIndicator />;

ui/src/routes/organizations/$orgId/products/$productId/repositories/$repoId/route.tsx

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919

2020
import { createFileRoute, Outlet } from '@tanstack/react-router';
2121

22-
import { useRepositoriesServiceGetApiV1RepositoriesByRepositoryIdKey } from '@/api/queries';
23-
import { RepositoriesService } from '@/api/requests';
22+
import { getRepositoryByIdOptions } from '@/hey-api/@tanstack/react-query.gen';
2423

2524
const Layout = () => {
2625
return <Outlet />;
@@ -31,14 +30,11 @@ export const Route = createFileRoute(
3130
)({
3231
loader: async ({ context, params }) => {
3332
const repo = await context.queryClient.ensureQueryData({
34-
queryKey: [
35-
useRepositoriesServiceGetApiV1RepositoriesByRepositoryIdKey,
36-
params.repoId,
37-
],
38-
queryFn: () =>
39-
RepositoriesService.getApiV1RepositoriesByRepositoryId({
33+
...getRepositoryByIdOptions({
34+
path: {
4035
repositoryId: Number.parseInt(params.repoId),
41-
}),
36+
},
37+
}),
4238
});
4339
context.breadcrumbs.repo = repo.url;
4440
},

0 commit comments

Comments
 (0)