Skip to content

Commit 41dbe61

Browse files
committed
feat: Allow Direct Connect through the sign in screen
https://harperdb.atlassian.net/browse/STUDIO-583
1 parent 72b28cb commit 41dbe61

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/features/cluster/InstanceLogInCell.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export function InstanceLogInCell({ instance }: { readonly instance: Instance })
1616
const operationsUrl = useMemo(() => getOperationsUrlForInstance(instance), [instance]);
1717
const instanceClient = useInstanceClient(operationsUrl);
1818
const { update } = useOrganizationClusterInstancePermissions();
19+
const isFabricConnect = authStore.checkForFabricConnect(instance.id);
1920

2021
const onSignOutClick = useCallback(async () => {
2122
await onInstanceLogoutSubmit({ instanceClient, entityId: instance.id });
@@ -26,7 +27,7 @@ export function InstanceLogInCell({ instance }: { readonly instance: Instance })
2627
return <LoaderCircleIcon className="animate-spin" color="gray" />;
2728
}
2829

29-
if (!instanceUser) {
30+
if (!instanceUser || isFabricConnect) {
3031
return <span className="flex gap-4">
3132
{update && <Link
3233
to={`../instance/${instance.id}${defaultInstanceRoute}`}

src/features/cluster/routes.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { defaultInstanceRouteUpOne } from '@/config/constants';
22
import { ClusterInstanceSignIn } from '@/features/auth/ClusterInstanceSignIn';
3+
import { authStore } from '@/features/auth/store/authStore';
34
import { createRoute, redirect } from '@tanstack/react-router';
45
import { clusterLayoutRoute } from './clusterLayoutRoute';
56
import { FinishSetup } from './FinishSetup';
@@ -30,7 +31,8 @@ const clusterSignInRoute = createRoute({
3031
path: 'sign-in',
3132
component: ClusterInstanceSignIn,
3233
beforeLoad: ({ context, location, params }) => {
33-
if (context.authentication[params.clusterId]?.user) {
34+
const isFabricConnect = authStore.checkForFabricConnect(params.clusterId);
35+
if (context.authentication[params.clusterId]?.user && !isFabricConnect) {
3436
const search: Record<string, string> = location?.search;
3537
throw redirect({
3638
to: search?.redirect?.startsWith('/')
@@ -46,7 +48,11 @@ const instanceSignInRoute = createRoute({
4648
path: 'instance/$instanceId/sign-in',
4749
component: ClusterInstanceSignIn,
4850
beforeLoad: ({ context, location, params }) => {
49-
if (context.authentication[params.instanceId || params.clusterId]?.user) {
51+
const isFabricConnect = authStore.checkForFabricConnect(params.clusterId);
52+
if (isFabricConnect) {
53+
return;
54+
}
55+
if (context.authentication[params.instanceId]?.user || context.authentication[params.clusterId]?.user) {
5056
const search: Record<string, string> = location?.search;
5157
throw redirect({
5258
to: search?.redirect?.startsWith('/')

0 commit comments

Comments
 (0)