Skip to content

Commit 70cd19d

Browse files
committed
Removed duplicate code between main and devices.$id
The isOneDevice and checkAuth can be leveraged from devices.$id.tsx
1 parent 72e2367 commit 70cd19d

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

ui/src/main.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export async function checkDeviceAuth() {
8585
}
8686

8787
export async function checkAuth() {
88-
return import.meta.env.MODE === "device" ? checkDeviceAuth() : checkCloudAuth();
88+
return isOnDevice ? checkDeviceAuth() : checkCloudAuth();
8989
}
9090

9191
let router;

ui/src/routes/devices.$id.tsx

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
22
import {
33
Outlet,
4-
redirect,
54
useLoaderData,
65
useLocation,
76
useNavigate,
@@ -15,7 +14,7 @@ import { FocusTrap } from "focus-trap-react";
1514
import { motion, AnimatePresence } from "framer-motion";
1615
import useWebSocket from "react-use-websocket";
1716

18-
import { CLOUD_API, DEVICE_API } from "@/ui.config";
17+
import { CLOUD_API } from "@/ui.config";
1918
import api from "@/api";
2019
import { checkAuth, isInCloud, isOnDevice } from "@/main";
2120
import { cx } from "@/cva.config";
@@ -48,7 +47,6 @@ import {
4847
} from "@/components/VideoOverlay";
4948
import { useDeviceUiNavigation } from "@/hooks/useAppNavigation";
5049
import { FeatureFlagProvider } from "@/providers/FeatureFlagProvider";
51-
import { DeviceStatus } from "@routes/welcome-local";
5250
import { useVersion } from "@/hooks/useVersion";
5351

5452
interface LocalLoaderResp {
@@ -70,20 +68,8 @@ export interface LocalDevice {
7068
}
7169

7270
const deviceLoader = async () => {
73-
const res = await api
74-
.GET(`${DEVICE_API}/device/status`)
75-
.then(res => res.json() as Promise<DeviceStatus>);
76-
77-
if (!res.isSetup) return redirect("/welcome");
78-
79-
const deviceRes = await api.GET(`${DEVICE_API}/device`);
80-
if (deviceRes.status === 401) return redirect("/login-local");
81-
if (deviceRes.ok) {
82-
const device = (await deviceRes.json()) as LocalDevice;
83-
return { authMode: device.authMode };
84-
}
85-
86-
throw new Error("Error fetching device");
71+
const device = await checkAuth();
72+
return { authMode: device.authMode } as LocalLoaderResp;
8773
};
8874

8975
const cloudLoader = async (params: Params<string>): Promise<CloudLoaderResp> => {
@@ -106,11 +92,11 @@ const cloudLoader = async (params: Params<string>): Promise<CloudLoaderResp> =>
10692
device: { id: string; name: string; user: { googleId: string } };
10793
};
10894

109-
return { user, iceConfig, deviceName: device.name || device.id };
95+
return { user, iceConfig, deviceName: device.name || device.id } as CloudLoaderResp;
11096
};
11197

11298
const loader: LoaderFunction = ({ params }: LoaderFunctionArgs) => {
113-
return import.meta.env.MODE === "device" ? deviceLoader() : cloudLoader(params);
99+
return isOnDevice ? deviceLoader() : cloudLoader(params);
114100
};
115101

116102
export default function KvmIdRoute() {

0 commit comments

Comments
 (0)