feat: disable creating account when server is not set

This commit is contained in:
qtchaos 2024-02-25 21:31:08 +02:00
parent fcf42a4e8a
commit 130b4f5cc3
No known key found for this signature in database
GPG Key ID: 7DA98B2B9EF06A90
2 changed files with 45 additions and 29 deletions

View File

@ -55,6 +55,8 @@
"text": "Did you configure it correctly?",
"title": "Failed to reach server"
},
"noHostTitle": "Server not configured!",
"noHost": "The server has not been configured, therefore you cannot create an account",
"host": "You are connecting to <0>{{hostname}}</0> - please confirm you trust it before making an account",
"no": "Go back",
"title": "Do you trust this server?",

View File

@ -23,7 +23,7 @@ export function TrustBackendPart(props: TrustBackendPartProps) {
const navigate = useNavigate();
const backendUrl = useBackendUrl();
const hostname = useMemo(
() => (backendUrl ? new URL(backendUrl).hostname : ""),
() => (backendUrl ? new URL(backendUrl).hostname : undefined),
[backendUrl],
);
const result = useAsync(() => {
@ -54,38 +54,52 @@ export function TrustBackendPart(props: TrustBackendPartProps) {
return (
<LargeCard>
<LargeCardText
title={t("auth.trust.title")}
title={hostname ? t("auth.trust.title") : t("auth.trust.noHostTitle")}
icon={<Icon icon={Icons.CIRCLE_EXCLAMATION} />}
>
<Trans
i18nKey="auth.trust.host"
values={{
hostname,
}}
>
<span className="text-white" />
</Trans>
{hostname ? (
<Trans
i18nKey="auth.trust.host"
values={{
hostname,
}}
>
<span className="text-white" />
</Trans>
) : (
<p>{t("auth.trust.noHost")}</p>
)}
</LargeCardText>
<div className="border border-authentication-border rounded-xl px-4 py-8 flex flex-col items-center space-y-2 my-8">
{cardContent}
</div>
<LargeCardButtons>
<Button theme="secondary" onClick={() => navigate("/")}>
{t("auth.trust.no")}
</Button>
<Button
theme="purple"
onClick={() => result.value && props.onNext?.(result.value)}
>
{t("auth.trust.yes")}
</Button>
</LargeCardButtons>
<p className="text-center mt-6">
<Trans i18nKey="auth.hasAccount">
<MwLink to="/login">.</MwLink>
</Trans>
</p>
{hostname ? (
<>
<div className="border border-authentication-border rounded-xl px-4 py-8 flex flex-col items-center space-y-2 my-8">
{cardContent}
</div>
<LargeCardButtons>
<Button theme="secondary" onClick={() => navigate("/")}>
{t("auth.trust.no")}
</Button>
<Button
theme="purple"
onClick={() => result.value && props.onNext?.(result.value)}
>
{t("auth.trust.yes")}
</Button>
</LargeCardButtons>
<p className="text-center mt-6">
<Trans i18nKey="auth.hasAccount">
<MwLink to="/login">.</MwLink>
</Trans>
</p>
</>
) : (
<LargeCardButtons>
<Button theme="purple" onClick={() => navigate("/")}>
{t("auth.trust.no")}
</Button>
</LargeCardButtons>
)}
</LargeCard>
);
}