From 35ff55822d1754513a8dc0bf49db09b92d1b0761 Mon Sep 17 00:00:00 2001 From: deyvisonwanderley Date: Mon, 3 Nov 2025 17:01:19 -0300 Subject: [PATCH] login broken usuario --- .../src/routes/(dashboard)/ti/usuarios/+page.svelte | 11 +++++++++-- packages/backend/convex/autenticacao.ts | 10 ++++------ packages/backend/convex/roles.ts | 10 ---------- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte b/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte index c15ba71..b5bd160 100644 --- a/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte +++ b/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte @@ -198,7 +198,14 @@ try { const resposta = await client.query(api.funcionarios.getAll, {}); - funcionarios = resposta; + // Suportar ambos formatos (array direto ou objeto com .data), dependendo do hook/cliente + const lista = Array.isArray(resposta) + ? resposta + : (resposta && typeof resposta === "object" && Array.isArray((resposta as { data?: unknown }).data) + ? ((resposta as { data: unknown[] }).data) + : []); + + funcionarios = lista as Funcionario[]; } catch (error: unknown) { console.error("Erro ao carregar funcionários:", error); funcionarios = []; @@ -216,7 +223,7 @@ const funcionariosFiltrados = $derived.by(() => { if (!buscaFuncionario) { - return funcionarios.sort((a, b) => a.nome.localeCompare(b.nome)); + return [...funcionarios].sort((a, b) => a.nome.localeCompare(b.nome)); } const buscaNormalizada = buscaFuncionario.toLowerCase(); diff --git a/packages/backend/convex/autenticacao.ts b/packages/backend/convex/autenticacao.ts index b4e2bb6..3f7912c 100644 --- a/packages/backend/convex/autenticacao.ts +++ b/packages/backend/convex/autenticacao.ts @@ -107,12 +107,10 @@ export const login = mutation({ .withIndex("by_email", (q) => q.eq("email", args.matriculaOuEmail)) .first(); } else { - usuario = await ctx.db - .query("usuarios") - .withIndex("by_matricula", (q) => - q.eq("matricula", args.matriculaOuEmail) - ) - .first(); + funcionario = await ctx.db.query("funcionarios").withIndex("by_matricula", (q) => q.eq("matricula", args.matriculaOuEmail)).first(); + if (funcionario) { + usuario = await ctx.db.get(funcionario.usuarioId); + } } if (!usuario) { diff --git a/packages/backend/convex/roles.ts b/packages/backend/convex/roles.ts index e500623..6f9d25f 100644 --- a/packages/backend/convex/roles.ts +++ b/packages/backend/convex/roles.ts @@ -6,16 +6,6 @@ import { query } from "./_generated/server"; */ export const listar = query({ args: {}, - returns: v.array( - v.object({ - _id: v.id("roles"), - _creationTime: v.number(), - nome: v.string(), - descricao: v.string(), - nivel: v.number(), - setor: v.optional(v.string()), - }) - ), handler: async (ctx) => { return await ctx.db.query("roles").collect(); },