diff options
Diffstat (limited to 'packages/web/app/signin/components')
| -rw-r--r-- | packages/web/app/signin/components/SignInForm.tsx | 16 | ||||
| -rw-r--r-- | packages/web/app/signin/components/SignInProviderButton.tsx | 21 |
2 files changed, 37 insertions, 0 deletions
diff --git a/packages/web/app/signin/components/SignInForm.tsx b/packages/web/app/signin/components/SignInForm.tsx new file mode 100644 index 00000000..ea19dedb --- /dev/null +++ b/packages/web/app/signin/components/SignInForm.tsx @@ -0,0 +1,16 @@ +import { getProviders, signIn } from "next-auth/react"; +import SignInProviderButton from "./SignInProviderButton"; + +export default async function SignInForm() { + const providers = (await getProviders()) ?? []; + + return ( + <div> + {Object.values(providers).map((provider) => ( + <div key={provider.name}> + <SignInProviderButton provider={provider} /> + </div> + ))} + </div> + ); +} diff --git a/packages/web/app/signin/components/SignInProviderButton.tsx b/packages/web/app/signin/components/SignInProviderButton.tsx new file mode 100644 index 00000000..0831236c --- /dev/null +++ b/packages/web/app/signin/components/SignInProviderButton.tsx @@ -0,0 +1,21 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { ClientSafeProvider, signIn } from "next-auth/react"; + +export default function SignInProviderButton({ + provider, +}: { + provider: ClientSafeProvider; +}) { + return ( + <Button + onClick={() => + signIn(provider.id, { + callbackUrl: "/", + }) + } + > + Sign in with {provider.name} + </Button> + ); +} |
