feat: implement professional avatar system with 30 3D realistic avatars inspired by cinema; enhance upload functionality and user experience with instant updates and improved UI components

This commit is contained in:
2025-10-30 02:16:50 -03:00
parent 16bcd2ac25
commit ef20d599eb
15 changed files with 4869 additions and 34 deletions

View File

@@ -14,6 +14,9 @@ interface Usuario {
setor?: string;
};
primeiroAcesso: boolean;
avatar?: string;
fotoPerfil?: string;
fotoPerfilUrl?: string | null;
}
interface AuthState {
@@ -90,6 +93,32 @@ class AuthStore {
this.state.carregando = carregando;
}
async refresh() {
if (!browser || !this.state.token) return;
try {
// Importação dinâmica do convex para evitar problemas de SSR
const { ConvexHttpClient } = await import("convex/browser");
const { api } = await import("@sgse-app/backend/convex/_generated/api");
const client = new ConvexHttpClient(import.meta.env.VITE_CONVEX_URL);
client.setAuth(this.state.token);
const usuarioAtualizado = await client.query(api.usuarios.obterPerfil, {});
if (usuarioAtualizado && this.state.usuario) {
this.state.usuario = {
...this.state.usuario,
...usuarioAtualizado,
};
localStorage.setItem("auth_usuario", JSON.stringify(this.state.usuario));
}
} catch (error) {
console.error("Erro ao atualizar perfil:", error);
}
}
private carregarDoLocalStorage() {
const token = localStorage.getItem("auth_token");
const usuarioStr = localStorage.getItem("auth_usuario");