Fix usuarios page #6

Merged
killer-cf merged 28 commits from fix-usuarios-page into master 2025-11-04 17:42:21 +00:00
61 changed files with 5096 additions and 5900 deletions
Showing only changes of commit 35ff55822d - Show all commits

View File

@@ -198,7 +198,14 @@
try { try {
const resposta = await client.query(api.funcionarios.getAll, {}); 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) { } catch (error: unknown) {
console.error("Erro ao carregar funcionários:", error); console.error("Erro ao carregar funcionários:", error);
funcionarios = []; funcionarios = [];
@@ -216,7 +223,7 @@
const funcionariosFiltrados = $derived.by(() => { const funcionariosFiltrados = $derived.by(() => {
if (!buscaFuncionario) { 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(); const buscaNormalizada = buscaFuncionario.toLowerCase();

View File

@@ -107,12 +107,10 @@ export const login = mutation({
.withIndex("by_email", (q) => q.eq("email", args.matriculaOuEmail)) .withIndex("by_email", (q) => q.eq("email", args.matriculaOuEmail))
.first(); .first();
} else { } else {
usuario = await ctx.db funcionario = await ctx.db.query("funcionarios").withIndex("by_matricula", (q) => q.eq("matricula", args.matriculaOuEmail)).first();
.query("usuarios") if (funcionario) {
.withIndex("by_matricula", (q) => usuario = await ctx.db.get(funcionario.usuarioId);
q.eq("matricula", args.matriculaOuEmail) }
)
.first();
} }
if (!usuario) { if (!usuario) {

View File

@@ -6,16 +6,6 @@ import { query } from "./_generated/server";
*/ */
export const listar = query({ export const listar = query({
args: {}, 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) => { handler: async (ctx) => {
return await ctx.db.query("roles").collect(); return await ctx.db.query("roles").collect();
}, },