From ed775afd938504f7a3635822d24d1e16552231ee Mon Sep 17 00:00:00 2001
From: PxlLoewe <72106766+PxlLoewe@users.noreply.github.com>
Date: Sat, 31 May 2025 19:15:28 -0700
Subject: [PATCH] autosend and autoverify verification mail
---
apps/dispatch-server/package.json | 1 +
apps/hub-server/package.json | 1 +
.../settings/email-verification/page.tsx | 33 ++--
.../(auth)/register/_components/Register.tsx | 2 +
.../hub/app/_components/EmailVerification.tsx | 6 +-
pnpm-lock.yaml | 144 ++++++++++++++++--
6 files changed, 161 insertions(+), 26 deletions(-)
diff --git a/apps/dispatch-server/package.json b/apps/dispatch-server/package.json
index 3d672c34..6584055f 100644
--- a/apps/dispatch-server/package.json
+++ b/apps/dispatch-server/package.json
@@ -33,6 +33,7 @@
"jsonwebtoken": "^9.0.2",
"livekit-server-sdk": "^2.10.2",
"nodemailer": "^6.10.0",
+ "nodemon": "^3.1.10",
"react": "^19.0.0",
"redis": "^4.7.0",
"socket.io": "^4.8.1",
diff --git a/apps/hub-server/package.json b/apps/hub-server/package.json
index dd9386b0..f9b55c69 100644
--- a/apps/hub-server/package.json
+++ b/apps/hub-server/package.json
@@ -27,6 +27,7 @@
"dotenv": "^16.4.7",
"express": "^4.21.2",
"nodemailer": "^6.10.0",
+ "nodemon": "^3.1.10",
"react": "^19.0.0",
"tsconfig-paths": "^4.2.0",
"tsx": "^4.19.4"
diff --git a/apps/hub/app/(app)/settings/email-verification/page.tsx b/apps/hub/app/(app)/settings/email-verification/page.tsx
index 8d81489b..8d755705 100644
--- a/apps/hub/app/(app)/settings/email-verification/page.tsx
+++ b/apps/hub/app/(app)/settings/email-verification/page.tsx
@@ -3,7 +3,7 @@ import { CheckEmailCode } from "(app)/admin/user/action";
import { Check } from "lucide-react";
import { useSession } from "next-auth/react";
import { useRouter, useSearchParams } from "next/navigation";
-import { useState } from "react";
+import { useEffect, useState } from "react";
import toast from "react-hot-toast";
export default function Page() {
@@ -12,30 +12,39 @@ export default function Page() {
const searchParams = useSearchParams();
const paramsCode = searchParams.get("code");
const [code, setCode] = useState(paramsCode || "");
+
+ useEffect(() => {
+ if (!paramsCode) return;
+ verifyCode(paramsCode);
+ }, [paramsCode])
+
+ async function verifyCode(code: string) {
+ if (!session.data?.user.email || !code) return;
+ const res = await CheckEmailCode(session.data?.user.id || "", code);
+ if (res.error) {
+ toast.error(res.error);
+ } else {
+ toast.success(res.message || "E-Mail erfolgreich bestätigt!");
+ router.push("/");
+ }
+ }
+
return (
- Email Bestätigung
+ E-Mail Bestätigung
setCode(e.target.value)}
/>