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:
@@ -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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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')
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user