draupnir4all-web

git clone git://archive.git.mtrnord.blog/MTRNord/draupnir4all-web.git
Log | Files | Refs | README | LICENSE

commit 6433be1248aa660ba53d1c37156deca539c49dd0
parent 57b9115a443b486beb75821037a280babf706b74
Author: MTRNord <mtrnord1@gmail.com>
Date:   Mon, 28 Apr 2025 14:31:04 +0200

Fix logic for logins

Signed-off-by: MTRNord <mtrnord1@gmail.com>

Diffstat:
Msrc/app/api/verify-matrix-token/route.ts | 6+++++-
Msrc/components/matrix-login-form.tsx | 22+++++++++-------------
2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/app/api/verify-matrix-token/route.ts b/src/app/api/verify-matrix-token/route.ts @@ -14,8 +14,12 @@ export async function POST(request: Request) { return NextResponse.json({ error: "Missing required fields" }, { status: 400 }) } + if (!matrixId.includes(":")) { + return NextResponse.json({ error: "Invalid Matrix ID format" }, { status: 400 }) + } + // Extract server name from Matrix ID - const serverName = matrixId.includes(":") ? matrixId.split(":").pop() || "matrix.org" : "matrix.org" + const serverName = matrixId.split(":").pop() // Discover homeserver URL let homeserverUrl = `https://${serverName}` diff --git a/src/components/matrix-login-form.tsx b/src/components/matrix-login-form.tsx @@ -29,22 +29,18 @@ export function MatrixLoginForm({ matrixId, onSuccess, onCancel }: MatrixLoginFo const [homeserverUrl, setHomeserverUrl] = useState<string | null>(null) const [discoveryStatus, setDiscoveryStatus] = useState<"idle" | "loading" | "success" | "error">("idle") - // Extract username and server from Matrix ID - const serverName = matrixId.includes(":") ? matrixId.split(":").pop() || "matrix.org" : "matrix.org" - // TODO: Fix me - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const username = matrixId.startsWith("@") - ? matrixId.includes(":") - ? matrixId.split(":")[0].substring(1) - : matrixId.substring(1) - : matrixId - // Discover homeserver URL useEffect(() => { async function discoverHomeserver() { - if (!serverName) return + if (!matrixId.includes(":")) { + setError("Invalid Matrix ID format. Please include a domain (e.g., @user:domain).") + return null + } + // Extract username and server from Matrix ID + const serverName = matrixId.split(":").pop() + if (!serverName) - setDiscoveryStatus("loading") + setDiscoveryStatus("loading") try { // Try to fetch well-known data const wellKnownUrl = `https://${serverName}/.well-known/matrix/client` @@ -74,7 +70,7 @@ export function MatrixLoginForm({ matrixId, onSuccess, onCancel }: MatrixLoginFo } discoverHomeserver() - }, [serverName]) + }, [matrixId]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault()