feat: improve company forms, phone input, and auth redirects

This commit is contained in:
Esdras Renan 2025-10-16 23:35:20 -03:00
parent 6962d5e5b5
commit 604216ddec
3 changed files with 57 additions and 17 deletions

View file

@ -15,7 +15,7 @@ export async function middleware(request: NextRequest) {
return new NextResponse("Invalid Host header", { status: 403 })
}
const { pathname, search } = request.nextUrl
const { pathname, searchParams, search } = request.nextUrl
if (pathname.startsWith("/api")) {
return NextResponse.next()
@ -49,6 +49,18 @@ export async function middleware(request: NextRequest) {
? ((session.user as unknown as { machinePersona?: string }).machinePersona ?? "").toLowerCase()
: null
if (pathname === "/login") {
const callback = searchParams.get("callbackUrl") ?? undefined
const defaultDestination =
role === "machine"
? machinePersona === "manager"
? "/dashboard"
: "/portal/tickets"
: APP_HOME
const target = callback && !callback.startsWith("/login") ? callback : defaultDestination
return NextResponse.redirect(new URL(target, request.url))
}
// Ajusta destinos conforme persona da máquina para evitar loops login<->dashboard
if (role === "machine") {
// Evita enviar colaborador ao dashboard; redireciona para o Portal
@ -56,11 +68,6 @@ export async function middleware(request: NextRequest) {
return NextResponse.redirect(new URL("/portal/tickets", request.url))
}
// Evita mostrar login quando já há sessão de máquina
if (pathname === "/login") {
const target = machinePersona === "manager" ? "/dashboard" : "/portal/tickets"
const url = new URL(target, request.url)
return NextResponse.redirect(url)
}
}
const isAdmin = role === "admin"