From ef236df0d89163af3d2779c3090e77e3e3047b59 Mon Sep 17 00:00:00 2001 From: matusilva Date: Sun, 15 Feb 2026 19:40:37 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20refatorar=20c=C3=B3digo=20e=20corrigir?= =?UTF-8?q?=20bugs=20no=20crud=20de=20usuario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/composables/useUsers.ts | 17 +++++++++++------ app/pages/index.vue | 4 +++- app/pages/settings/index.vue | 20 ++++++++++++++++---- app/pages/settings/users.vue | 3 ++- app/types/index.d.ts | 12 +++++++++++- server/api/users.post.ts | 13 +++++++++++-- 6 files changed, 54 insertions(+), 15 deletions(-) diff --git a/app/composables/useUsers.ts b/app/composables/useUsers.ts index d09d2d6..1ccffdf 100644 --- a/app/composables/useUsers.ts +++ b/app/composables/useUsers.ts @@ -28,7 +28,9 @@ export function useUsers() { users.value = (data as Profile[]) || [] } - async function addUser(user: Omit & { password?: string }) { + async function addUser( + user: Omit & { password?: string } + ) { loading.value = true error.value = null @@ -40,14 +42,15 @@ export function useUsers() { await loadUsers() } catch (err: any) { console.error(err) - error.value = err.data?.message || err.message || 'Erro ao adicionar usuário.' + error.value = + err.data?.message || err.message || 'Erro ao adicionar usuário.' throw err } finally { loading.value = false } } - async function updateUser(user: Partial & { user_id: string }) { + async function updateUser(user: any) { loading.value = true error.value = null @@ -55,7 +58,7 @@ export function useUsers() { await $fetch('/api/users', { method: 'PUT', body: { - id: user.user_id, + id: user.id || user.user_id, name: user.name, role: user.role } @@ -63,7 +66,8 @@ export function useUsers() { await loadUsers() } catch (err: any) { console.error(err) - error.value = err.data?.message || err.message || 'Erro ao atualizar usuário.' + error.value = + err.data?.message || err.message || 'Erro ao atualizar usuário.' throw err } finally { loading.value = false @@ -81,7 +85,8 @@ export function useUsers() { await loadUsers() } catch (err: any) { console.error(err) - error.value = err.data?.message || err.message || 'Erro ao excluir usuário.' + error.value = + err.data?.message || err.message || 'Erro ao excluir usuário.' throw err } finally { loading.value = false diff --git a/app/pages/index.vue b/app/pages/index.vue index 8df19e6..8b7de3f 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -39,7 +39,9 @@ const items = [

Bem-vindo ao Painel

-

Selecione uma opção no menu lateral para começar.

+

+ Selecione uma opção no menu lateral para começar. +

diff --git a/app/pages/settings/index.vue b/app/pages/settings/index.vue index cd9cc41..4069130 100644 --- a/app/pages/settings/index.vue +++ b/app/pages/settings/index.vue @@ -2,6 +2,8 @@ import * as z from 'zod' import type { FormSubmitEvent } from '@nuxt/ui' +const { loadAuthUser, user } = useAuth() + // const fileRef = ref() const profileSchema = z.object({ @@ -11,9 +13,11 @@ const profileSchema = z.object({ type ProfileSchema = z.output +await loadAuthUser() + const profile = reactive>({ - name: 'Benjamin Canac', - email: 'ben@nuxtlabs.com' + name: user.value.user_metadata.name, + email: user.value.email }) const toast = useToast() @@ -73,7 +77,10 @@ async function onSubmit(event: FormSubmitEvent) { required class="flex max-sm:flex-col justify-between items-start gap-4" > - + ) { required class="flex max-sm:flex-col justify-between items-start gap-4" > - +