1
1
import { lazy , useCallback , useEffect , useMemo , useRef , useState } from "react" ;
2
2
import {
3
3
Outlet ,
4
- redirect ,
5
4
useLoaderData ,
6
5
useLocation ,
7
6
useNavigate ,
@@ -15,7 +14,7 @@ import { FocusTrap } from "focus-trap-react";
15
14
import { motion , AnimatePresence } from "framer-motion" ;
16
15
import useWebSocket from "react-use-websocket" ;
17
16
18
- import { CLOUD_API , DEVICE_API } from "@/ui.config" ;
17
+ import { CLOUD_API } from "@/ui.config" ;
19
18
import api from "@/api" ;
20
19
import { checkAuth , isInCloud , isOnDevice } from "@/main" ;
21
20
import { cx } from "@/cva.config" ;
@@ -48,7 +47,6 @@ import {
48
47
} from "@/components/VideoOverlay" ;
49
48
import { useDeviceUiNavigation } from "@/hooks/useAppNavigation" ;
50
49
import { FeatureFlagProvider } from "@/providers/FeatureFlagProvider" ;
51
- import { DeviceStatus } from "@routes/welcome-local" ;
52
50
import { useVersion } from "@/hooks/useVersion" ;
53
51
54
52
interface LocalLoaderResp {
@@ -70,20 +68,8 @@ export interface LocalDevice {
70
68
}
71
69
72
70
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 ;
87
73
} ;
88
74
89
75
const cloudLoader = async ( params : Params < string > ) : Promise < CloudLoaderResp > => {
@@ -106,11 +92,11 @@ const cloudLoader = async (params: Params<string>): Promise<CloudLoaderResp> =>
106
92
device : { id : string ; name : string ; user : { googleId : string } } ;
107
93
} ;
108
94
109
- return { user, iceConfig, deviceName : device . name || device . id } ;
95
+ return { user, iceConfig, deviceName : device . name || device . id } as CloudLoaderResp ;
110
96
} ;
111
97
112
98
const loader : LoaderFunction = ( { params } : LoaderFunctionArgs ) => {
113
- return import . meta . env . MODE === "device" ? deviceLoader ( ) : cloudLoader ( params ) ;
99
+ return isOnDevice ? deviceLoader ( ) : cloudLoader ( params ) ;
114
100
} ;
115
101
116
102
export default function KvmIdRoute ( ) {
0 commit comments