chore: improve toast and show once

This commit is contained in:
Rodolfo Ruiz 2025-07-03 21:25:42 -06:00
parent eb49416000
commit 7757334c7b
3 changed files with 12 additions and 14 deletions

View File

@ -5,7 +5,7 @@ export default function useApiToast() {
const handleError = (error, defaultMessage = 'API error') => {
console.error(error);
enqueueSnackbar(error.message || defaultMessage, { variant: 'error' });
enqueueSnackbar(defaultMessage, { variant: 'error' });
};
return { handleError };

View File

@ -9,14 +9,9 @@ import App from './App.jsx'
createRoot(document.getElementById('root')).render(
<StrictMode>
<ThemeProvider theme={theme}>
<SnackbarProvider maxSnack={3}
autoHideDuration={5000}
anchorOrigin={{
vertical: 'top',
horizontal: 'right',
}}>
<SnackbarProvider maxSnack={3} autoHideDuration={3000}>
<App />
</SnackbarProvider>
</ThemeProvider>
</StrictMode>,
)
)

View File

@ -1,5 +1,5 @@
import SectionContainer from '../../components/SectionContainer';
import { useEffect, useState } from 'react';
import { useEffect, useState, useRef } from 'react';
import { DataGrid } from '@mui/x-data-grid';
import { Typography, Button, Dialog, DialogTitle, DialogContent, IconButton, Box } from '@mui/material';
import EditRoundedIcon from '@mui/icons-material/EditRounded';
@ -42,11 +42,14 @@ export default function Admin() {
const [rowToDelete, setRowToDelete] = useState(null);
const { handleError } = useApiToast();
useEffect(() => {
let isMounted = true;
loadData();
return () => { isMounted = false };
}, []);
const hasLoaded = useRef(false);
useEffect(() => {
if (!hasLoaded.current) {
loadData();
hasLoaded.current = true;
}
}, []);
const handleEditClick = (params) => {
setEditingData(params.row);