diff --git a/src/states/Login/tabs/RegisterTab/RegisterTab.jsx b/src/states/Login/tabs/RegisterTab/RegisterTab.jsx
new file mode 100644
index 0000000..281fe64
--- /dev/null
+++ b/src/states/Login/tabs/RegisterTab/RegisterTab.jsx
@@ -0,0 +1,70 @@
+import {Alert, Button, CircularProgress, Stack, Typography} from "@mui/material";
+import {useState} from "react";
+import RegisterFields from "@/states/Login/tabs/RegisterTab/components/RegisterFields";
+import {postRequest} from "@/common/utils/RequestUtil.js";
+import Email from "@/common/assets/images/mail.svg";
+
+export const RegisterTab = ({setShowTabs}) => {
+ const [username, setUsername] = useState("");
+ const [email, setEmail] = useState("");
+ const [password, setPassword] = useState("");
+
+ const [fieldError, setFieldError] = useState("");
+
+ const [alreadyRegistered, setAlreadyRegistered] = useState(false);
+
+ const [accountCreated, setAccountCreated] = useState(false);
+
+ const [loading, setLoading] = useState(false);
+
+ const register = (event) => {
+ event.preventDefault();
+
+ if (username.length < 3) return setFieldError("username");
+ if (email.length < 3) return setFieldError("email");
+ if (password.length < 3) return setFieldError("password");
+
+ setLoading(true);
+
+ setTimeout(async () => {
+ try {
+ await postRequest("/user/register", {username, email, password});
+ setFieldError("");
+ setLoading(false);
+ setShowTabs(false);
+ setAccountCreated(true);
+ } catch (e) {
+ if (e.code === 1001) setAlreadyRegistered(true);
+
+ setLoading(false);
+ setFieldError(e.fieldName);
+ }
+ }, 500);
+ }
+
+ return (
+ <>
+ {!accountCreated &&
+ {fieldError && Bitte korrigiere deine Eingaben.}
+ {alreadyRegistered && Diesen Account gibt es bereits.}
+
+
+
+
+
+ }
+ {accountCreated &&
+
+
+ Überprüfe deine E-Mails!
+
+
+ Wir haben dir eine E-Mail mit einem Bestätigungslink geschickt.
+
+ }
+ >
+ )
+}
\ No newline at end of file