discotools / pages /discord-callback.tsx
enzostvs's picture
enzostvs HF Staff
Upload 172 files
9cd6ddb verified
import { useEffect, useState } from "react";
import Router, { useRouter } from "next/router";
import Image from "next/image";
import LinkComp from "next/link";
import { setToken } from "utils/auth";
// import Background from "assets/images/header/background.svg";
// import Book from "assets/images/header/book.svg";
// import Pizza from "assets/images/header/pizza.svg";
import AvatarBot from "assets/images/avatar_bot.png";
export default function DiscordCallback() {
const { asPath } = useRouter();
const [fragment, setFragment] = useState<any>(null);
const [accessToken, setAccessToken] = useState<any>(null);
useEffect(() => {
setFragment(new URLSearchParams((asPath as string).split("#")[1]));
}, []);
useEffect(() => {
setAccessToken(fragment?.get("access_token"));
}, [fragment]);
useEffect(() => {
if (accessToken) {
setToken(accessToken);
// redirect to home
Router.push("/");
}
}, [accessToken]);
return (
<header className="relative z-1 h-screen">
<div className="z-1 px-6 h-full">
<div className="container mx-auto relative h-full flex items-center justify-center">
<div className="max-w-2xl mx-auto bg-dark-500 w-full rounded-2xl grid grid-cols-1 lg:grid-cols-5 overflow-hidden shadow-xl transform transition-all duration-400">
<div className="lg:col-span-3 py-9 px-8 text-center">
<Image
width={64}
height={64}
alt="Clyde the Bot"
src={AvatarBot}
className="w-16 mx-auto"
/>
<h3 className="text-white font-bold text-2xl text-center mt-1 tracking-wide">
The Guardian
</h3>
<p className="text-lg text-dark-100">
{!accessToken
? "Hello, something went wrong. Please go back."
: "Login in progress..."}
</p>
{!accessToken && (
<LinkComp href="/">
<button className="bg-[#f02727] text-white rounded-lg w-full text-center px-3 py-3 mt-5 font-semibold hover:bg-opacity-80">
Go back to website
</button>
</LinkComp>
)}
</div>
<div
style={
{
// backgroundImage: `url(${ModalLoginIllustration.src})`,
}
}
className="w-full h-full bg-cover hidden lg:block bg-center lg:col-span-2 relative bg-dark-600"
/>
</div>
</div>
</div>
<div className="bg-blue h-full w-full absolute top-0 left-0 -z-1">
{/* <Image
width={124}
height={124}
alt="Decoration Background"
src={Book}
className="absolute select-none left-20 top-1/3 pointer-events-none hidden lg:block"
/>
<Image
width={124}
height={124}
alt="Decoration Background"
src={Pizza}
className="absolute select-none bottom-20 right-20 pointer-events-none hidden lg:block"
/>
<Image
width={124}
height={124}
alt="Decoration Background"
src={Background}
className="w-full absolute select-none bottom-0 left-0 pointer-events-none -z-1"
/> */}
</div>
</header>
);
}