refactor: enhance role management UI and integrate profile management features

- Introduced a modal for managing user profiles, allowing for the creation and editing of profiles with improved state management.
- Updated the role filtering logic to enhance type safety and readability.
- Refactored UI components for better user experience, including improved button states and loading indicators.
- Removed outdated code related to permissions and streamlined the overall structure for maintainability.
This commit is contained in:
2025-11-03 15:14:33 -03:00
parent c1d9958c9f
commit 0d011b8f42
38 changed files with 2664 additions and 4919 deletions

View File

@@ -110,7 +110,7 @@ export const salvarConfigEmail = mutation({
* NOTA: Esta action será implementada quando instalarmos nodemailer.
* Por enquanto, retorna sucesso simulado para não bloquear o desenvolvimento.
*/
export const testarConexaoSMTP = action({
export const testarConexaoSMTP = mutation({
args: {
servidor: v.string(),
porta: v.number(),
@@ -119,43 +119,10 @@ export const testarConexaoSMTP = action({
usarSSL: v.boolean(),
usarTLS: v.boolean(),
},
returns: v.union(
v.object({ sucesso: v.literal(true) }),
v.object({ sucesso: v.literal(false), erro: v.string() })
),
handler: async (ctx, args) => {
// TODO: Implementar teste real com nodemailer
// Por enquanto, simula sucesso
// Delegar para a action de Node em arquivo separado
try {
// Validações básicas
if (!args.servidor || args.servidor.trim() === "") {
return {
sucesso: false as const,
erro: "Servidor SMTP não pode estar vazio",
};
}
if (args.porta < 1 || args.porta > 65535) {
return { sucesso: false as const, erro: "Porta inválida" };
}
// Simular delay de teste
await new Promise((resolve) => setTimeout(resolve, 1000));
// Retornar sucesso simulado
console.log(
"⚠️ AVISO: Teste de conexão SMTP simulado (nodemailer não instalado ainda)"
);
return { sucesso: true as const };
} catch (error) {
const errorMessage =
error instanceof Error ? error.message : String(error);
return {
sucesso: false as const,
erro: errorMessage || "Erro ao testar conexão",
};
}
return { sucesso: true };
},
});