diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-13 14:42:56 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-13 14:45:31 +0000 |
| commit | c883bee10ed40792c2ae35bdd9745649cfffa2f2 (patch) | |
| tree | 86223d42d454472687260deb90e2a45d19e3e99a /packages/web/app/signin/components | |
| parent | 400b696f74d7bde3717483ed7cfec5b8de675018 (diff) | |
| download | karakeep-c883bee10ed40792c2ae35bdd9745649cfffa2f2.tar.zst | |
feature: Add login page and logout button
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> + ); +} |
