Skip to main content
Glama
index.tsx2.23 kB
'use client'; import { useLogin } from '@intlayer/design-system/hooks'; import { useRouter, useSearchParams } from 'next/navigation'; import { type FC, useEffect, useRef } from 'react'; import { PagesRoutes } from '@/Routes'; import { type SignIn, SignInForm as SignInFormUI } from './SignInForm/index'; export const SignInForm: FC<{ callbackUrl?: string; }> = ({ callbackUrl }) => { const router = useRouter(); const { mutate: login, isPending } = useLogin(); const searchParams = useSearchParams(); const email = searchParams.get('email'); const emailInputRef = useRef<HTMLInputElement>(null); // If callbackUrl is provided but redirect_url is not in the URL, // add it to the current URL so 2FA redirect can preserve it useEffect(() => { if (callbackUrl && !searchParams.get('redirect_url')) { const currentUrl = new URL(window.location.href); currentUrl.searchParams.set('redirect_url', callbackUrl); window.history.replaceState({}, '', currentUrl.toString()); } }, [callbackUrl, searchParams]); const onSubmitSuccess = ({ email, password, rememberMe }: SignIn) => { login({ email, password, rememberMe, callbackURL: callbackUrl ?? window.location.href, }); }; const getEmailContext = () => { const email = searchParams.get('email'); if (email) { return email; } else { const emailFromInput = emailInputRef.current; return emailFromInput?.value; } }; const onClickForgotPassword = () => { const email = getEmailContext(); if (email) { router.push(`${PagesRoutes.Auth_AskResetPassword}?email=${email}`); } else { router.push(PagesRoutes.Auth_AskResetPassword); } }; const onClickSignUp = () => { const email = getEmailContext(); if (email) { router.push(`${PagesRoutes.Auth_SignUp}?email=${email}`); } else { router.push(PagesRoutes.Auth_SignUp); } }; return ( <SignInFormUI onSubmitSuccess={onSubmitSuccess} onClickForgotPassword={onClickForgotPassword} onClickSignUp={onClickSignUp} defaultEmail={email ?? undefined} emailInputRef={emailInputRef} isLoading={isPending} /> ); };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aymericzip/intlayer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server