diff --git a/src/renderer/features/login/routes/login-route.tsx b/src/renderer/features/login/routes/login-route.tsx
index 30d188c05..9e949f732 100644
--- a/src/renderer/features/login/routes/login-route.tsx
+++ b/src/renderer/features/login/routes/login-route.tsx
@@ -15,10 +15,12 @@ import { AppRoute } from '/@/renderer/router/routes';
import { useAuthStoreActions, useCurrentServer } from '/@/renderer/store';
import { Button } from '/@/shared/components/button/button';
import { Center } from '/@/shared/components/center/center';
+import { Code } from '/@/shared/components/code/code';
import { Paper } from '/@/shared/components/paper/paper';
import { PasswordInput } from '/@/shared/components/password-input/password-input';
import { Stack } from '/@/shared/components/stack/stack';
import { TextInput } from '/@/shared/components/text-input/text-input';
+import { TextTitle } from '/@/shared/components/text-title/text-title';
import { Text } from '/@/shared/components/text/text';
import { toast } from '/@/shared/components/toast/toast';
import { useForm } from '/@/shared/hooks/use-form';
@@ -53,6 +55,29 @@ const LoginRoute = () => {
const serverName = localSettings?.env.SERVER_NAME || '';
const serverUrl = localSettings?.env.SERVER_URL || '';
+ const config = [
+ {
+ isValid: true,
+ key: 'SERVER_LOCK',
+ value: serverLock,
+ },
+ {
+ isValid: serverType !== null,
+ key: 'SERVER_TYPE',
+ value: serverType,
+ },
+ {
+ isValid: true,
+ key: 'SERVER_NAME',
+ value: serverName,
+ },
+ {
+ isValid: serverUrl !== '',
+ key: 'SERVER_URL',
+ value: serverUrl,
+ },
+ ];
+
const form = useForm({
initialValues: {
password: '',
@@ -60,10 +85,31 @@ const LoginRoute = () => {
},
});
- if (!serverLock || !serverType || currentServer) {
+ // If server lock is not enabled, or we already have a server, redirect to home
+ if (currentServer) {
return ;
}
+ // If any of the config values are invalid, show error
+ if (config.some((c) => !c.isValid)) {
+ return (
+
+
+
+
+
+ {t('error.genericError', { postProcess: 'sentenceCase' })}
+
+
+ {t('error.serverNotSelectedError', { postProcess: 'sentenceCase' })}
+
+ {JSON.stringify(config, null, 2)}
+
+
+
+ );
+ }
+
const handleSubmit = form.onSubmit(async (values) => {
const authFunction = api.controller.authenticate;
@@ -82,7 +128,7 @@ const LoginRoute = () => {
password: values.password,
username: values.username,
},
- serverType,
+ serverType as ServerType,
);
if (!data) {
@@ -95,7 +141,7 @@ const LoginRoute = () => {
credential: data.credential,
id: nanoid(),
name: serverName,
- type: serverType,
+ type: serverType as ServerType,
url: serverUrl.replace(/\/$/, ''),
userId: data.userId,
username: data.username,
@@ -132,8 +178,8 @@ const LoginRoute = () => {
});
const isSubmitDisabled = !form.values.username || !form.values.password;
- const serverIcon = SERVER_ICONS[serverType];
- const serverDisplayName = SERVER_NAMES[serverType];
+ const serverIcon = SERVER_ICONS[serverType as ServerType];
+ const serverDisplayName = SERVER_NAMES[serverType as ServerType];
return (
@@ -150,11 +196,11 @@ const LoginRoute = () => {
width="80"
/>
- {serverDisplayName}
+ {serverName}
{serverName && (
- {serverName}
+ {serverDisplayName}
)}
diff --git a/src/renderer/router/app-outlet.tsx b/src/renderer/router/app-outlet.tsx
index f4ed622b2..efe28b51e 100644
--- a/src/renderer/router/app-outlet.tsx
+++ b/src/renderer/router/app-outlet.tsx
@@ -34,11 +34,12 @@ export const AppOutlet = () => {
);
}
+ // When server lock is enabled always redirect to login
if (serverLock && !currentServer) {
return ;
}
- if (isActionsRequired || authState === AuthState.INVALID) {
+ if (!serverLock && (isActionsRequired || authState === AuthState.INVALID)) {
return ;
}