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:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user