import dynamic from "next/dynamic";
import Seo from "../components/common/Seo";
import LoginForm from "../components/login/LoginForm";
import { GetServerSideProps } from "next";

const index = ({ referrer }: { referrer: string }) => {
  return (
    <>
      <Seo pageTitle="Login" />
      <LoginForm referrer={referrer} />
    </>
  );
};

export default dynamic(() => Promise.resolve(index), { ssr: false });

export const getServerSideProps: GetServerSideProps = async (context) => {
  const referrer = context.req.headers.referer || "";
  let path = "";

  if (referrer) {
    try {
      const referrerUrl = new URL(referrer);
      path = referrerUrl.pathname || "";
    } catch {
      path = "";
    }
  }

  // Prevent redirect loops from these pages
  const invalidReferrers = ["/login", "/logout", "/forget-password", "/reset-password"];

  if (invalidReferrers.includes(path)) {
    path = ""; // ignore it
  }

  return {
    props: {
      referrer: path,
    },
  };
};
