From c883bee10ed40792c2ae35bdd9745649cfffa2f2 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Tue, 13 Feb 2024 14:42:56 +0000 Subject: feature: Add login page and logout button --- packages/web/app/signin/components/SignInForm.tsx | 16 ++++++++++++++++ .../app/signin/components/SignInProviderButton.tsx | 21 +++++++++++++++++++++ packages/web/app/signin/page.tsx | 19 +++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 packages/web/app/signin/components/SignInForm.tsx create mode 100644 packages/web/app/signin/components/SignInProviderButton.tsx create mode 100644 packages/web/app/signin/page.tsx (limited to 'packages/web/app/signin') 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 ( +
+ {Object.values(providers).map((provider) => ( +
+ +
+ ))} +
+ ); +} 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 ( + + ); +} diff --git a/packages/web/app/signin/page.tsx b/packages/web/app/signin/page.tsx new file mode 100644 index 00000000..afe63dd3 --- /dev/null +++ b/packages/web/app/signin/page.tsx @@ -0,0 +1,19 @@ +import { Brain } from "lucide-react"; +import SignInForm from "./components/SignInForm"; + +export default async function SignInPage() { + // TODO Add support for email and credential signin form + return ( +
+
+ + + + Remember +
+
+ +
+
+ ); +} -- cgit v1.2.3-70-g09d2