fix(web): montar Toaster + feedback toast en PermisosEditor [UDT-009]

Sonner estaba como dependencia pero el componente Toaster nunca se monto
en el arbol de la app. ChangeMyPasswordPage ya usaba toast() pero no
mostraba nada visualmente. Agregado <Toaster richColors closeButton /> en
App.tsx (top-right) y toasts de exito/error en PermisosEditor.handleSave
para confirmar al usuario que el cambio se persistio.
This commit is contained in:
2026-04-16 10:11:04 -03:00
parent a30b10ebff
commit 6822d56e11
2 changed files with 7 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
import { BrowserRouter } from 'react-router-dom' import { BrowserRouter } from 'react-router-dom'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { Toaster } from 'sonner'
import { AppRoutes } from './router' import { AppRoutes } from './router'
const queryClient = new QueryClient({ const queryClient = new QueryClient({
@@ -15,6 +16,7 @@ function App() {
<BrowserRouter> <BrowserRouter>
<AppRoutes /> <AppRoutes />
</BrowserRouter> </BrowserRouter>
<Toaster richColors closeButton position="top-right" />
</QueryClientProvider> </QueryClientProvider>
) )
} }

View File

@@ -1,5 +1,6 @@
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react'
import { isAxiosError } from 'axios' import { isAxiosError } from 'axios'
import { toast } from 'sonner'
import { AlertCircle } from 'lucide-react' import { AlertCircle } from 'lucide-react'
import { Alert, AlertDescription } from '@/components/ui/alert' import { Alert, AlertDescription } from '@/components/ui/alert'
import { Button } from '@/components/ui/button' import { Button } from '@/components/ui/button'
@@ -116,10 +117,13 @@ export function PermisosEditor({ userId }: PermisosEditorProps) {
{ grant, deny }, { grant, deny },
{ {
onError: (err) => { onError: (err) => {
setSaveError(resolveErrorMessage(err)) const msg = resolveErrorMessage(err)
setSaveError(msg)
toast.error(msg)
}, },
onSuccess: () => { onSuccess: () => {
setSaveError(null) setSaveError(null)
toast.success('Permisos actualizados correctamente')
}, },
}, },
) )