"use client" import { useEffect, useState } from "react" import Image from "next/image" import Link from "next/link" import { useRouter, useSearchParams } from "next/navigation" import dynamic from "next/dynamic" import { LoginForm } from "@/components/login-form" import { useSession } from "@/lib/auth-client" const ShaderBackground = dynamic( () => import("@/components/background-paper-shaders-wrapper"), { ssr: false } ) export function LoginPageClient() { const router = useRouter() const searchParams = useSearchParams() const { data: session, isPending } = useSession() const callbackUrl = searchParams?.get("callbackUrl") ?? undefined const [isHydrated, setIsHydrated] = useState(false) const sessionUser = session?.user const userId = sessionUser?.id ?? null const normalizedRole = sessionUser?.role ? sessionUser.role.toLowerCase() : null const persona = typeof sessionUser?.machinePersona === "string" ? sessionUser.machinePersona.toLowerCase() : null useEffect(() => { if (isPending) return if (!userId) return const defaultDest = normalizedRole === "machine" ? persona === "manager" ? "/dashboard" : "/portal/tickets" : "/dashboard" const destination = callbackUrl ?? defaultDest router.replace(destination) }, [ callbackUrl, isPending, normalizedRole, persona, router, userId, ]) useEffect(() => { setIsHydrated(true) }, []) const shouldDisable = !isHydrated || isPending return (
Raven Helpdesk
Por Rever Tecnologia
Logotipo Raven
Desenvolvido por Esdras Renan

Bem-vindo de volta

Gerencie seus chamados e tickets de forma simples

) }