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(); },