diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-10 17:59:58 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-10 17:59:58 +0000 |
| commit | d6dd76021226802adf5295b3243d6f2ae4fa5cc2 (patch) | |
| tree | 7a25423d46db9e0e224b5f58b73cec5768953b44 /packages/web/components/signin/SignInForm.tsx | |
| parent | 8ab868d3f94cc6609d278dc952432f1a244c3f84 (diff) | |
| download | karakeep-d6dd76021226802adf5295b3243d6f2ae4fa5cc2.tar.zst | |
refactor: Move all components to the top level directory
Diffstat (limited to 'packages/web/components/signin/SignInForm.tsx')
| -rw-r--r-- | packages/web/components/signin/SignInForm.tsx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/web/components/signin/SignInForm.tsx b/packages/web/components/signin/SignInForm.tsx new file mode 100644 index 00000000..7c8f8936 --- /dev/null +++ b/packages/web/components/signin/SignInForm.tsx @@ -0,0 +1,37 @@ +import { getProviders } from "next-auth/react"; +import SignInProviderButton from "./SignInProviderButton"; +import CredentialsForm from "./CredentialsForm"; + +export default async function SignInForm() { + const providers = await getProviders(); + let providerValues; + if (providers) { + providerValues = Object.values(providers).filter( + // Credentials are handled manually by the sign in form + (p) => p.id != "credentials", + ); + } + + return ( + <div className="flex flex-col items-center space-y-2"> + <CredentialsForm /> + + {providerValues && providerValues.length > 0 && ( + <> + <div className="flex w-full items-center"> + <div className="flex-1 grow border-t-2 border-gray-200"></div> + <span className="bg-white px-3 text-gray-500">Or</span> + <div className="flex-1 grow border-t-2 border-gray-200"></div> + </div> + <div className="space-y-2"> + {providerValues.map((provider) => ( + <div key={provider.id}> + <SignInProviderButton provider={provider} /> + </div> + ))} + </div> + </> + )} + </div> + ); +} |
