1
0
mirror of https://github.com/sasjs/server.git synced 2026-01-19 20:00:05 +00:00

chore: add snackbar for showing success alert

This commit is contained in:
2022-07-04 16:00:23 +05:00
parent b5f595a25c
commit 4c35e04802
2 changed files with 84 additions and 10 deletions

View File

@@ -0,0 +1,62 @@
import React, { Dispatch, SetStateAction } from 'react'
import Snackbar from '@mui/material/Snackbar'
import MuiAlert, { AlertProps } from '@mui/material/Alert'
import Slide, { SlideProps } from '@mui/material/Slide'
const Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(
props,
ref
) {
return <MuiAlert elevation={6} ref={ref} variant="filled" {...props} />
})
const Transition = (props: SlideProps) => {
return <Slide {...props} direction="up" />
}
export enum AlertSeverityType {
Success = 'success',
Warning = 'warning',
Info = 'info',
Error = 'error'
}
type BootstrapSnackbarProps = {
open: boolean
setOpen: Dispatch<SetStateAction<boolean>>
message: string
severity: AlertSeverityType
}
const BootstrapSnackbar = ({
open,
setOpen,
message,
severity
}: BootstrapSnackbarProps) => {
const handleClose = (
event: React.SyntheticEvent | Event,
reason?: string
) => {
if (reason === 'clickaway') {
return
}
setOpen(false)
}
return (
<Snackbar
open={open}
autoHideDuration={3000}
onClose={handleClose}
TransitionComponent={Transition}
>
<Alert onClose={handleClose} severity={severity} sx={{ width: '100%' }}>
{message}
</Alert>
</Snackbar>
)
}
export default BootstrapSnackbar

View File

@@ -29,6 +29,7 @@ import PermissionFilterModal from './permissionFilterModal'
import AddPermissionModal from './addPermissionModal' import AddPermissionModal from './addPermissionModal'
import UpdatePermissionModal from './updatePermissionModal' import UpdatePermissionModal from './updatePermissionModal'
import DeleteModal from './deletePermissionModal' import DeleteModal from './deletePermissionModal'
import BootstrapSnackbar, { AlertSeverityType } from '../../components/snackbar'
import { import {
GroupDetailsResponse, GroupDetailsResponse,
@@ -52,6 +53,11 @@ const Permission = () => {
const [openModal, setOpenModal] = useState(false) const [openModal, setOpenModal] = useState(false)
const [modalTitle, setModalTitle] = useState('') const [modalTitle, setModalTitle] = useState('')
const [modalPayload, setModalPayload] = useState('') const [modalPayload, setModalPayload] = useState('')
const [openSnackbar, setOpenSnackbar] = useState(false)
const [snackbarMessage, setSnackbarMessage] = useState('')
const [snackbarSeverity, setSnackbarSeverity] = useState<AlertSeverityType>(
AlertSeverityType.Success
)
const [addPermissionModalOpen, setAddPermissionModalOpen] = useState(false) const [addPermissionModalOpen, setAddPermissionModalOpen] = useState(false)
const [updatePermissionModalOpen, setUpdatePermissionModalOpen] = const [updatePermissionModalOpen, setUpdatePermissionModalOpen] =
useState(false) useState(false)
@@ -177,9 +183,9 @@ const Permission = () => {
.post('/SASjsApi/permission', addPermissionPayload) .post('/SASjsApi/permission', addPermissionPayload)
.then((res: any) => { .then((res: any) => {
fetchPermissions() fetchPermissions()
setModalTitle('Success') setSnackbarMessage('Permission added!')
setModalPayload('Permission added Successfully.') setSnackbarSeverity(AlertSeverityType.Success)
setOpenModal(true) setOpenSnackbar(true)
}) })
.catch((err) => { .catch((err) => {
setModalTitle('Abort') setModalTitle('Abort')
@@ -209,9 +215,9 @@ const Permission = () => {
}) })
.then((res: any) => { .then((res: any) => {
fetchPermissions() fetchPermissions()
setModalTitle('Success') setSnackbarMessage('Permission updated!')
setModalPayload('Permission updated Successfully.') setSnackbarSeverity(AlertSeverityType.Success)
setOpenModal(true) setOpenSnackbar(true)
}) })
.catch((err) => { .catch((err) => {
setModalTitle('Abort') setModalTitle('Abort')
@@ -240,9 +246,9 @@ const Permission = () => {
.delete(`/SASjsApi/permission/${selectedPermission?.permissionId}`) .delete(`/SASjsApi/permission/${selectedPermission?.permissionId}`)
.then((res: any) => { .then((res: any) => {
fetchPermissions() fetchPermissions()
setModalTitle('Success') setSnackbarMessage('Permission deleted!')
setModalPayload('Permission deleted Successfully.') setSnackbarSeverity(AlertSeverityType.Success)
setOpenModal(true) setOpenSnackbar(true)
}) })
.catch((err) => { .catch((err) => {
setModalTitle('Abort') setModalTitle('Abort')
@@ -294,6 +300,12 @@ const Permission = () => {
/> />
</Grid> </Grid>
</Grid> </Grid>
<BootstrapSnackbar
open={openSnackbar}
setOpen={setOpenSnackbar}
message={snackbarMessage}
severity={snackbarSeverity}
/>
<Modal <Modal
open={openModal} open={openModal}
setOpen={setOpenModal} setOpen={setOpenModal}
@@ -454,7 +466,7 @@ const DisplayGroup = ({ group }: DisplayGroupProps) => {
disableRestoreFocus disableRestoreFocus
> >
<Typography sx={{ p: 1 }} variant="h6" component="div"> <Typography sx={{ p: 1 }} variant="h6" component="div">
Group Users Group Members
</Typography> </Typography>
{group.users.map((user) => ( {group.users.map((user) => (
<Typography sx={{ p: 1 }} component="li"> <Typography sx={{ p: 1 }} component="li">