diff --git a/packages/login/src/components/EmailActivationForm/index.tsx b/packages/login/src/components/EmailActivationForm/index.tsx
index b4c98e9eff..4c3643dca5 100644
--- a/packages/login/src/components/EmailActivationForm/index.tsx
+++ b/packages/login/src/components/EmailActivationForm/index.tsx
@@ -26,10 +26,52 @@
"use client";
-import withLoader from "@/app/(root)/confirm/withLoader";
+import { useContext, useEffect, useState } from "react";
+import { useRouter } from "next/navigation";
+import { EmployeeActivationStatus } from "@docspace/shared/enums";
+import { updateActivationStatus } from "@docspace/shared/api/people";
+import { ConfirmRouteContext } from "@/app/(root)/confirm/confirmRoute";
+import { TError } from "@/types";
+
+import AppLoader from "@docspace/shared/components/app-loader";
const EmailActivationForm = () => {
- return
Email activation
;
+ const [error, setError] = useState();
+
+ const { linkData } = useContext(ConfirmRouteContext);
+ const router = useRouter();
+
+ const { email, uid = "", key = "" } = linkData;
+
+ useEffect(() => {
+ updateActivationStatus(EmployeeActivationStatus.Activated, uid, key)
+ .then(() => {
+ window.location.replace(`/login?confirmedEmail=${email}`);
+ })
+ .catch((error) => {
+ const knownError = error as TError;
+ let errorMessage: string;
+
+ if (typeof knownError === "object") {
+ errorMessage =
+ knownError?.response?.data?.error?.message ||
+ knownError?.statusText ||
+ knownError?.message ||
+ "";
+ } else {
+ errorMessage = knownError;
+ }
+
+ setError(errorMessage);
+ });
+ }, [email, key, uid, router]);
+
+ if (error) {
+ console.error(error);
+ throw new Error(error);
+ }
+
+ return ;
};
-export default withLoader(EmailActivationForm);
+export default EmailActivationForm;