AUTHMODE BABAY
This commit is contained in:
3
app/api/auth/[...nextauth]/route.ts
Normal file
3
app/api/auth/[...nextauth]/route.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { handlers } from "@/auth";
|
||||
|
||||
export const { GET, POST } = handlers;
|
@@ -1,21 +1,9 @@
|
||||
"use client";
|
||||
|
||||
import { useToast } from "@/components/toast";
|
||||
import { TTCMD } from "@/components/ttcmd";
|
||||
import { useEffect } from "react";
|
||||
import { FC, use } from "react";
|
||||
|
||||
export const HomeClient: FC<{ body: Promise<string> }> = ({ body }) => {
|
||||
const text = use(body);
|
||||
|
||||
const { createToast } = useToast();
|
||||
useEffect(() => {
|
||||
createToast({
|
||||
fading: false,
|
||||
msg: "TEST TOAST",
|
||||
type: "error",
|
||||
});
|
||||
}, [createToast]);
|
||||
|
||||
return <TTCMD body={text} parserId="home" title="home" />;
|
||||
};
|
||||
|
@@ -11,7 +11,7 @@
|
||||
}
|
||||
input,
|
||||
select {
|
||||
@apply py-2 px-4 rounded-full dark:bg-mixed-200 bg-mixed-600 placeholder:text-dark-500;
|
||||
@apply py-2 px-4 rounded-lg dark:bg-mixed-200 bg-mixed-600 placeholder:text-dark-500;
|
||||
}
|
||||
textarea {
|
||||
@apply dark:bg-mixed-200 bg-primary-600 rounded-md p-1;
|
||||
@@ -48,7 +48,7 @@
|
||||
}
|
||||
|
||||
.btn {
|
||||
@apply rounded-full;
|
||||
@apply rounded-lg;
|
||||
}
|
||||
.btn-primary {
|
||||
@apply dark:bg-primary-500 bg-primary-100 py-4 px-6 dark:text-mixed-100 text-white font-bold text-lg btn;
|
||||
@@ -97,6 +97,17 @@
|
||||
.fade-toast {
|
||||
animation: fadeOut 300ms forwards;
|
||||
}
|
||||
|
||||
.separated-list > li:not(:last-child) {
|
||||
@apply border-b border-mixed-600 w-full;
|
||||
}
|
||||
|
||||
.fade-menu {
|
||||
animation: fadeIn 100ms forwards;
|
||||
}
|
||||
.fade-menu[data-closing="true"] {
|
||||
animation: fadeOut 100ms forwards;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes identifier {
|
||||
@@ -117,3 +128,11 @@
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
@@ -13,6 +13,8 @@ import { DevToolboxContextProvider } from "@/components/devtools/context";
|
||||
import { RecoilRootClient } from "@/components/recoilRoot";
|
||||
import { JotaiProvider } from "@/components/jotaiProvider";
|
||||
import { Toaster } from "@/components/toast";
|
||||
import { SessionProvider } from "next-auth/react";
|
||||
import { User } from "@/components/user/index";
|
||||
|
||||
const roboto = Roboto({ subsets: ["latin"], weight: "400" });
|
||||
|
||||
@@ -56,37 +58,44 @@ export default function RootLayout({
|
||||
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={roboto.className + " flex min-h-[100vh]"}>
|
||||
<nav className="h-[100vh] sticky top-0 left-0 bottom-0 p-8 rounded-r-3xl dark:bg-mixed-300 bg-primary-400 w-max shadow-2xl">
|
||||
<h1 className="text-lg font-bold pb-6 border-b dark:border-dark-500 border-primary-600">
|
||||
<Link href="/">Tabletop Commander</Link>
|
||||
</h1>
|
||||
<ul className="my-6 flex flex-col gap-6">
|
||||
{navItems.map((n) => (
|
||||
<li key={"nav-item" + n.text}>
|
||||
<Link
|
||||
href={n.to}
|
||||
className="flex items-center gap-2 group hover:text-purple-300 transition-colors"
|
||||
>
|
||||
<n.icon className="w-6 h-6 group-hover:fill-purple-300 transition-colors" />
|
||||
{n.text}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</nav>
|
||||
<RecoilRootClient>
|
||||
<JotaiProvider>
|
||||
<DevToolboxContextProvider
|
||||
isDev={process.env.NODE_ENV !== "production"}
|
||||
>
|
||||
<main className="p-8 w-full overflow-visible">{children}</main>
|
||||
<Toaster />
|
||||
</DevToolboxContextProvider>
|
||||
</JotaiProvider>
|
||||
</RecoilRootClient>
|
||||
<div id="root-portal"></div>
|
||||
</body>
|
||||
<SessionProvider>
|
||||
<body className={roboto.className + " flex min-h-[100vh]"}>
|
||||
<nav className="h-[100vh] sticky top-0 left-0 bottom-0 p-8 rounded-r-3xl dark:bg-mixed-300 bg-primary-400 w-max shadow-2xl">
|
||||
<div className="flex flex-col h-full">
|
||||
<h1 className="text-lg font-bold pb-6 border-b dark:border-dark-500 border-primary-600">
|
||||
<Link href="/">Tabletop Commander</Link>
|
||||
</h1>
|
||||
<ul className="my-6 flex flex-col gap-6">
|
||||
{navItems.map((n) => (
|
||||
<li key={"nav-item" + n.text}>
|
||||
<Link
|
||||
href={n.to}
|
||||
className="flex items-center gap-2 group hover:text-purple-300 transition-colors"
|
||||
>
|
||||
<n.icon className="w-6 h-6 group-hover:fill-purple-300 transition-colors" />
|
||||
{n.text}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
<div className="mt-auto">
|
||||
<User />
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<RecoilRootClient>
|
||||
<JotaiProvider>
|
||||
<DevToolboxContextProvider
|
||||
isDev={process.env.NODE_ENV !== "production"}
|
||||
>
|
||||
<main className="p-8 w-full overflow-visible">{children}</main>
|
||||
<Toaster />
|
||||
</DevToolboxContextProvider>
|
||||
</JotaiProvider>
|
||||
</RecoilRootClient>
|
||||
<div id="root-portal"></div>
|
||||
</body>
|
||||
</SessionProvider>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
|
19
app/sign-in/page.tsx
Normal file
19
app/sign-in/page.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import { auth } from "@/auth";
|
||||
import SignIn from "@/components/signIn";
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
async function SignInUp() {
|
||||
const session = await auth();
|
||||
|
||||
if (session?.user) redirect("/");
|
||||
|
||||
return (
|
||||
<div className="grid place-items-center h-full">
|
||||
<div>
|
||||
<SignIn />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default SignInUp;
|
Reference in New Issue
Block a user