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 a0409c4884
commit 98f7233cdb
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`)
.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`);
if (deviceRes.status === 401) return redirect("/login-local");
if (deviceRes.status === 401) throw redirect("/login-local");
if (deviceRes.ok) {
const device = (await deviceRes.json()) as LocalDevice;
return { authMode: device.authMode };

View File

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

View File

@ -54,7 +54,7 @@ const loader: LoaderFunction = async ({ params }: LoaderFunctionArgs) => {
return { device, user };
} catch (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 user = await checkAuth();
const iceResp = await api.POST(`${CLOUD_API}/webrtc/ice_config`);
const iceConfig = await iceResp.json();
const deviceResp = await api.GET(`${CLOUD_API}/devices/${params.id}`);
if (!deviceResp.ok) {

View File

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