22
33import { useEffect , useState } from 'react'
44import { createLogger } from '@sim/logger'
5- import { ArrowRight , ChevronRight , Eye , EyeOff } from 'lucide-react'
5+ import { Eye , EyeOff } from 'lucide-react'
66import Link from 'next/link'
77import { useRouter , useSearchParams } from 'next/navigation'
8- import { Button } from '@/components/ui/button'
98import {
109 Dialog ,
1110 DialogContent ,
@@ -22,6 +21,7 @@ import { getBaseUrl } from '@/lib/core/utils/urls'
2221import { quickValidateEmail } from '@/lib/messaging/email/validation'
2322import { inter } from '@/app/_styles/fonts/inter/inter'
2423import { soehne } from '@/app/_styles/fonts/soehne/soehne'
24+ import { BrandedButton } from '@/app/(auth)/components/branded-button'
2525import { SocialLoginButtons } from '@/app/(auth)/components/social-login-buttons'
2626import { SSOLoginButton } from '@/app/(auth)/components/sso-login-button'
2727import { useBrandedButtonClass } from '@/hooks/use-branded-button-class'
@@ -107,15 +107,13 @@ export default function LoginPage({
107107 const [ passwordErrors , setPasswordErrors ] = useState < string [ ] > ( [ ] )
108108 const [ showValidationError , setShowValidationError ] = useState ( false )
109109 const buttonClass = useBrandedButtonClass ( )
110- const [ isButtonHovered , setIsButtonHovered ] = useState ( false )
111110
112111 const [ callbackUrl , setCallbackUrl ] = useState ( '/workspace' )
113112 const [ isInviteFlow , setIsInviteFlow ] = useState ( false )
114113
115114 const [ forgotPasswordOpen , setForgotPasswordOpen ] = useState ( false )
116115 const [ forgotPasswordEmail , setForgotPasswordEmail ] = useState ( '' )
117116 const [ isSubmittingReset , setIsSubmittingReset ] = useState ( false )
118- const [ isResetButtonHovered , setIsResetButtonHovered ] = useState ( false )
119117 const [ resetStatus , setResetStatus ] = useState < {
120118 type : 'success' | 'error' | null
121119 message : string
@@ -491,24 +489,14 @@ export default function LoginPage({
491489 </ div >
492490 </ div >
493491
494- < Button
492+ < BrandedButton
495493 type = 'submit'
496- onMouseEnter = { ( ) => setIsButtonHovered ( true ) }
497- onMouseLeave = { ( ) => setIsButtonHovered ( false ) }
498- className = 'group inline-flex w-full items-center justify-center gap-2 rounded-[10px] border border-[#6F3DFA] bg-gradient-to-b from-[#8357FF] to-[#6F3DFA] py-[6px] pr-[10px] pl-[12px] text-[15px] text-white shadow-[inset_0_2px_4px_0_#9B77FF] transition-all'
499494 disabled = { isLoading }
495+ loading = { isLoading }
496+ loadingText = 'Signing in'
500497 >
501- < span className = 'flex items-center gap-1' >
502- { isLoading ? 'Signing in...' : 'Sign in' }
503- < span className = 'inline-flex transition-transform duration-200 group-hover:translate-x-0.5' >
504- { isButtonHovered ? (
505- < ArrowRight className = 'h-4 w-4' aria-hidden = 'true' />
506- ) : (
507- < ChevronRight className = 'h-4 w-4' aria-hidden = 'true' />
508- ) }
509- </ span >
510- </ span >
511- </ Button >
498+ Sign in
499+ </ BrandedButton >
512500 </ form >
513501 ) }
514502
@@ -619,25 +607,15 @@ export default function LoginPage({
619607 < p > { resetStatus . message } </ p >
620608 </ div >
621609 ) }
622- < Button
610+ < BrandedButton
623611 type = 'button'
624612 onClick = { handleForgotPassword }
625- onMouseEnter = { ( ) => setIsResetButtonHovered ( true ) }
626- onMouseLeave = { ( ) => setIsResetButtonHovered ( false ) }
627- className = 'group inline-flex w-full items-center justify-center gap-2 rounded-[10px] border border-[#6F3DFA] bg-gradient-to-b from-[#8357FF] to-[#6F3DFA] py-[6px] pr-[10px] pl-[12px] text-[15px] text-white shadow-[inset_0_2px_4px_0_#9B77FF] transition-all'
628613 disabled = { isSubmittingReset }
614+ loading = { isSubmittingReset }
615+ loadingText = 'Sending'
629616 >
630- < span className = 'flex items-center gap-1' >
631- { isSubmittingReset ? 'Sending...' : 'Send Reset Link' }
632- < span className = 'inline-flex transition-transform duration-200 group-hover:translate-x-0.5' >
633- { isResetButtonHovered ? (
634- < ArrowRight className = 'h-4 w-4' aria-hidden = 'true' />
635- ) : (
636- < ChevronRight className = 'h-4 w-4' aria-hidden = 'true' />
637- ) }
638- </ span >
639- </ span >
640- </ Button >
617+ Send Reset Link
618+ </ BrandedButton >
641619 </ div >
642620 </ DialogContent >
643621 </ Dialog >
0 commit comments