mirror of
https://github.com/lukevella/rallly.git
synced 2025-04-28 09:46:39 +02:00
⚡️ Cache login page
This commit is contained in:
parent
ca46b18f3a
commit
a40f86024e
3 changed files with 11 additions and 25 deletions
|
@ -1,21 +1,17 @@
|
|||
"use client";
|
||||
import { Button } from "@rallly/ui/button";
|
||||
import { useSearchParams } from "next/navigation";
|
||||
import { signIn } from "next-auth/react";
|
||||
|
||||
import { Trans } from "@/components/trans";
|
||||
|
||||
export async function LoginWithOIDC({
|
||||
name,
|
||||
redirectTo,
|
||||
}: {
|
||||
name: string;
|
||||
redirectTo?: string;
|
||||
}) {
|
||||
export async function LoginWithOIDC({ name }: { name: string }) {
|
||||
const searchParams = useSearchParams();
|
||||
return (
|
||||
<Button
|
||||
onClick={() => {
|
||||
signIn("oidc", {
|
||||
redirectTo,
|
||||
redirectTo: searchParams?.get("redirectTo") ?? undefined,
|
||||
});
|
||||
}}
|
||||
variant="link"
|
||||
|
|
|
@ -3,6 +3,7 @@ import { Button } from "@rallly/ui/button";
|
|||
import { Icon } from "@rallly/ui/icon";
|
||||
import { UserIcon } from "lucide-react";
|
||||
import Image from "next/image";
|
||||
import { useSearchParams } from "next/navigation";
|
||||
import { signIn } from "next-auth/react";
|
||||
|
||||
import { Trans } from "@/components/trans";
|
||||
|
@ -40,13 +41,12 @@ function SSOImage({ provider }: { provider: string }) {
|
|||
export function SSOProvider({
|
||||
providerId,
|
||||
name,
|
||||
redirectTo,
|
||||
}: {
|
||||
providerId: string;
|
||||
name: string;
|
||||
redirectTo?: string;
|
||||
}) {
|
||||
const { t } = useTranslation();
|
||||
const searchParams = useSearchParams();
|
||||
return (
|
||||
<Button
|
||||
size="lg"
|
||||
|
@ -58,7 +58,7 @@ export function SSOProvider({
|
|||
key={providerId}
|
||||
onClick={() => {
|
||||
signIn(providerId, {
|
||||
redirectTo,
|
||||
redirectTo: searchParams?.get("redirectTo") ?? undefined,
|
||||
});
|
||||
}}
|
||||
>
|
||||
|
|
|
@ -20,13 +20,9 @@ import { LoginWithOIDC } from "./components/login-with-oidc";
|
|||
import { OrDivider } from "./components/or-divider";
|
||||
import { SSOProvider } from "./components/sso-provider";
|
||||
|
||||
export default async function LoginPage({
|
||||
searchParams,
|
||||
}: {
|
||||
searchParams?: {
|
||||
redirectTo?: string;
|
||||
};
|
||||
}) {
|
||||
export const dynamic = "force-static";
|
||||
|
||||
export default async function LoginPage() {
|
||||
const { t } = await getTranslation();
|
||||
|
||||
const oidcProvider = OIDCProvider();
|
||||
|
@ -51,12 +47,7 @@ export default async function LoginPage({
|
|||
<AuthPageContent>
|
||||
<LoginWithEmailForm />
|
||||
{hasAlternateLoginMethods ? <OrDivider /> : null}
|
||||
{oidcProvider ? (
|
||||
<LoginWithOIDC
|
||||
name={oidcProvider.name}
|
||||
redirectTo={searchParams?.redirectTo}
|
||||
/>
|
||||
) : null}
|
||||
{oidcProvider ? <LoginWithOIDC name={oidcProvider.name} /> : null}
|
||||
{socialProviders ? (
|
||||
<div className="grid gap-4">
|
||||
{socialProviders.map((provider) =>
|
||||
|
@ -65,7 +56,6 @@ export default async function LoginPage({
|
|||
key={provider.id}
|
||||
providerId={provider.id}
|
||||
name={provider.options?.name || provider.name}
|
||||
redirectTo={searchParams?.redirectTo}
|
||||
/>
|
||||
) : null,
|
||||
)}
|
||||
|
|
Loading…
Add table
Reference in a new issue