Skip to content

Commit 3d80377

Browse files
committed
fix: Load cluster when editing properly
By switching to using the clusterLayoutRoute, the cluster in the route context will be populated properly.
1 parent 9c1fa03 commit 3d80377

File tree

5 files changed

+27
-23
lines changed

5 files changed

+27
-23
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { ClusterLayout } from '@/features/cluster/ClusterLayout';
2+
import { getClusterInfoQueryOptions } from '@/features/cluster/queries/getClusterInfoQuery';
3+
import { clustersLayoutRoute } from '@/features/clusters/routes';
4+
import { createRoute } from '@tanstack/react-router';
5+
6+
export const clusterLayoutRoute = createRoute({
7+
getParentRoute: () => clustersLayoutRoute,
8+
path: '$clusterId',
9+
component: ClusterLayout,
10+
beforeLoad: async ({ context, params }) => {
11+
return {
12+
cluster: await context.queryClient.ensureQueryData(getClusterInfoQueryOptions(params.clusterId)),
13+
};
14+
},
15+
});

src/features/cluster/routes.ts

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,10 @@
11
import { defaultInstanceRouteUpOne } from '@/config/constants';
22
import { ClusterInstanceSignIn } from '@/features/auth/ClusterInstanceSignIn';
3-
import { ClusterLayout } from '@/features/cluster/ClusterLayout';
3+
import { clusterLayoutRoute } from '@/features/cluster/clusterLayoutRoute';
44
import { ClusterSetPassword } from '@/features/cluster/ClusterSetPassword';
55
import { ClusterIndex } from '@/features/cluster/index';
6-
import { getClusterInfoQueryOptions } from '@/features/cluster/queries/getClusterInfoQuery';
7-
import { clustersLayoutRoute } from '@/features/clusters/routes';
86
import { createRoute, redirect } from '@tanstack/react-router';
97

10-
export const clusterLayoutRoute = createRoute({
11-
getParentRoute: () => clustersLayoutRoute,
12-
path: '$clusterId',
13-
component: ClusterLayout,
14-
beforeLoad: async ({ context, params }) => {
15-
return {
16-
cluster: await context.queryClient.ensureQueryData(getClusterInfoQueryOptions(params.clusterId)),
17-
};
18-
},
19-
});
20-
218
const clusterIndexRoute = createRoute({
229
getParentRoute: () => clusterLayoutRoute,
2310
path: 'instances',

src/features/clusters/routes.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { clusterLayoutRoute } from '@/features/cluster/clusterLayoutRoute';
12
import { ClustersList as ClusterList } from '@/features/clusters/ClustersList';
23
import { UpsertCluster } from '@/features/clusters/upsert';
34
import { orgLayoutRoute } from '@/features/organization/routes';
@@ -21,8 +22,8 @@ const newClusterRoute = createRoute({
2122
});
2223

2324
const editClusterRoute = createRoute({
24-
getParentRoute: () => orgLayoutRoute,
25-
path: '$clusterId/edit',
25+
getParentRoute: () => clusterLayoutRoute,
26+
path: '/edit',
2627
component: UpsertCluster,
2728
});
2829

src/features/instance/instanceLayoutRoute.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { clusterLayoutRoute } from '@/features/cluster/routes';
2-
import { InstanceLayout } from '@/features/instance/InstanceLayout';
1+
import { clusterLayoutRoute } from '@/features/cluster/clusterLayoutRoute';
32
import { getInstanceInfoQueryOptions } from '@/features/cluster/queries/getInstanceInfoQuery';
3+
import { InstanceLayout } from '@/features/instance/InstanceLayout';
44
import { buildRedirectInSearch } from '@/lib/urls/buildRedirectInSearch';
55
import { dashboardLayout } from '@/router/dashboardRoute';
66
import { createRoute, redirect } from '@tanstack/react-router';

src/router/rootRouteTree.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { isLocalStudio } from '@/config/constants';
2-
import { rootRoute } from '@/router/rootRoute';
32
import { authRouteTree, localAuthRoutes } from '@/features/auth/routes';
4-
import { dashboardLayout } from '@/router/dashboardRoute';
3+
import { clusterLayoutRoute } from '@/features/cluster/clusterLayoutRoute';
4+
import { clusterRoutes } from '@/features/cluster/routes';
5+
import { clustersLayoutRoute, clustersRoutes } from '@/features/clusters/routes';
56
import { createInstanceRouteTree } from '@/features/instance/routes';
6-
import { orgsLayoutRoute, orgsRoutes } from '@/features/organizations/routes';
77
import { orgLayoutRoute, orgRoutes } from '@/features/organization/routes';
8-
import { clustersLayoutRoute, clustersRoutes } from '@/features/clusters/routes';
9-
import { clusterLayoutRoute, clusterRoutes } from '@/features/cluster/routes';
8+
import { orgsLayoutRoute, orgsRoutes } from '@/features/organizations/routes';
109
import { profileRoutes } from '@/features/profile/routes';
10+
import { dashboardLayout } from '@/router/dashboardRoute';
11+
import { rootRoute } from '@/router/rootRoute';
1112

1213
export const rootRouteTree = isLocalStudio
1314
? rootRoute.addChildren([

0 commit comments

Comments
 (0)