Switch to throwing redirect for welcome or login-local needed

Also cleaned up the loader function error-state returns
This commit is contained in:
Marc Brooks 2025-10-29 12:09:02 -05:00
parent 8e9e3e242f
commit ffb5bb544b
No known key found for this signature in database
GPG Key ID: 583A6AF2D6AE1DC6
5 changed files with 6 additions and 8 deletions

View File

@ -73,10 +73,10 @@ export async function checkDeviceAuth() {
.GET(`${DEVICE_API}/device/status`) .GET(`${DEVICE_API}/device/status`)
.then(res => res.json() as Promise<DeviceStatus>); .then(res => res.json() as Promise<DeviceStatus>);
if (!res.isSetup) return redirect("/welcome"); if (!res.isSetup) throw redirect("/welcome");
const deviceRes = await api.GET(`${DEVICE_API}/device`); const deviceRes = await api.GET(`${DEVICE_API}/device`);
if (deviceRes.status === 401) return redirect("/login-local"); if (deviceRes.status === 401) throw redirect("/login-local");
if (deviceRes.ok) { if (deviceRes.ok) {
const device = (await deviceRes.json()) as LocalDevice; const device = (await deviceRes.json()) as LocalDevice;
return { authMode: device.authMode }; return { authMode: device.authMode };

View File

@ -58,7 +58,7 @@ const loader: LoaderFunction = async ({ params }: LoaderFunctionArgs) => {
return { device, user }; return { device, user };
} catch (e) { } catch (e) {
console.error(e); console.error(e);
return { devices: [] }; return { user };
} }
}; };

View File

@ -54,7 +54,7 @@ const loader: LoaderFunction = async ({ params }: LoaderFunctionArgs) => {
return { device, user }; return { device, user };
} catch (e) { } catch (e) {
console.error(e); console.error(e);
return { devices: [] }; return { user };
} }
}; };

View File

@ -78,10 +78,8 @@ const deviceLoader = async () => {
const cloudLoader = async (params: Params<string>): Promise<CloudLoaderResp> => { const cloudLoader = async (params: Params<string>): Promise<CloudLoaderResp> => {
const user = await checkAuth(); const user = await checkAuth();
const iceResp = await api.POST(`${CLOUD_API}/webrtc/ice_config`); const iceResp = await api.POST(`${CLOUD_API}/webrtc/ice_config`);
const iceConfig = await iceResp.json(); const iceConfig = await iceResp.json();
const deviceResp = await api.GET(`${CLOUD_API}/devices/${params.id}`); const deviceResp = await api.GET(`${CLOUD_API}/devices/${params.id}`);
if (!deviceResp.ok) { if (!deviceResp.ok) {

View File

@ -16,7 +16,7 @@ interface LoaderData {
devices: { id: string; name: string; online: boolean; lastSeen: string }[]; devices: { id: string; name: string; online: boolean; lastSeen: string }[];
user: User; user: User;
} }
const loader: LoaderFunction = async ()=> { const loader: LoaderFunction = async () => {
const user = await checkAuth(); const user = await checkAuth();
try { try {
@ -30,7 +30,7 @@ const loader: LoaderFunction = async ()=> {
return { devices, user }; return { devices, user };
} catch (e) { } catch (e) {
console.error(e); console.error(e);
return { devices: [] }; return { devices: [], user };
} }
}; };