diff --git a/space/core/components/account/auth-forms/email.tsx b/space/core/components/account/auth-forms/email.tsx index 6721aedab6f..f0b88407a83 100644 --- a/space/core/components/account/auth-forms/email.tsx +++ b/space/core/components/account/auth-forms/email.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC, FormEvent, useMemo, useState } from "react"; +import { FC, FormEvent, useMemo, useRef, useState } from "react"; import { observer } from "mobx-react"; // icons import { CircleAlert, XCircle } from "lucide-react"; @@ -22,7 +22,6 @@ export const AuthEmailForm: FC = observer((props) => { // states const [isSubmitting, setIsSubmitting] = useState(false); const [email, setEmail] = useState(defaultEmail); - const [isFocused, setFocused] = useState(false); const emailError = useMemo( () => (email && !checkEmailValidity(email) ? { email: "Email is invalid" } : undefined), @@ -41,6 +40,9 @@ export const AuthEmailForm: FC = observer((props) => { const isButtonDisabled = email.length === 0 || Boolean(emailError?.email) || isSubmitting; + const [isFocused, setIsFocused] = useState(true) + const inputRef = useRef(null); + return (
@@ -52,6 +54,9 @@ export const AuthEmailForm: FC = observer((props) => { `relative flex items-center rounded-md bg-onboarding-background-200 border`, !isFocused && Boolean(emailError?.email) ? `border-red-500` : `border-onboarding-border-100` )} + tabIndex={-1} + onFocus={() => {setIsFocused(true)}} + onBlur={() => {setIsFocused(false)}} > = observer((props) => { onChange={(e) => setEmail(e.target.value)} placeholder="name@company.com" className={`disable-autofill-style h-[46px] w-full placeholder:text-onboarding-text-400 autofill:bg-red-500 border-0 focus:bg-none active:bg-transparent`} - onFocus={() => setFocused(true)} - onBlur={() => setFocused(false)} autoComplete="on" autoFocus + ref={inputRef} /> - {email.length > 0 && ( + {email.length > 0 && ( setEmail("")} + className="h-[46px] w-11 px-3 stroke-custom-text-400 hover:cursor-pointer text-xs" + onClick={() => { + setEmail(""); + inputRef.current?.focus(); + }} /> )}
@@ -85,4 +92,4 @@ export const AuthEmailForm: FC = observer((props) => { ); -}); +}); \ No newline at end of file diff --git a/web/core/components/account/auth-forms/email.tsx b/web/core/components/account/auth-forms/email.tsx index ab328a7e1b8..1e96ed3f2f5 100644 --- a/web/core/components/account/auth-forms/email.tsx +++ b/web/core/components/account/auth-forms/email.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC, FormEvent, useMemo, useState } from "react"; +import { FC, FormEvent, useMemo, useRef, useState } from "react"; import { observer } from "mobx-react"; // icons import { CircleAlert, XCircle } from "lucide-react"; @@ -22,7 +22,6 @@ export const AuthEmailForm: FC = observer((props) => { // states const [isSubmitting, setIsSubmitting] = useState(false); const [email, setEmail] = useState(defaultEmail); - const [isFocused, setFocused] = useState(false); const emailError = useMemo( () => (email && !checkEmailValidity(email) ? { email: "Email is invalid" } : undefined), @@ -41,6 +40,9 @@ export const AuthEmailForm: FC = observer((props) => { const isButtonDisabled = email.length === 0 || Boolean(emailError?.email) || isSubmitting; + const [isFocused, setIsFocused] = useState(true) + const inputRef = useRef(null); + return (
@@ -52,6 +54,9 @@ export const AuthEmailForm: FC = observer((props) => { `relative flex items-center rounded-md bg-onboarding-background-200 border`, !isFocused && Boolean(emailError?.email) ? `border-red-500` : `border-onboarding-border-100` )} + tabIndex={-1} + onFocus={() => {setIsFocused(true)}} + onBlur={() => {setIsFocused(false)}} > = observer((props) => { onChange={(e) => setEmail(e.target.value)} placeholder="name@example.com" className={`disable-autofill-style h-[46px] w-full placeholder:text-onboarding-text-400 autofill:bg-red-500 border-0 focus:bg-none active:bg-transparent`} - onFocus={() => setFocused(true)} - onBlur={() => setFocused(false)} autoComplete="on" autoFocus + ref={inputRef} /> - {email.length > 0 && ( + {email.length > 0 && ( setEmail("")} + className="h-[46px] w-11 px-3 stroke-custom-text-400 hover:cursor-pointer text-xs" + onClick={() => { + setEmail(""); + inputRef.current?.focus(); + }} /> )}
@@ -85,4 +92,4 @@ export const AuthEmailForm: FC = observer((props) => { ); -}); +}); \ No newline at end of file