implement notification that pops up when users add someone to their favourites from sidebar
This commit is contained in:
parent
9253170755
commit
d353da7e2a
@ -1,5 +1,5 @@
|
|||||||
import { Settings } from "@mui/icons-material";
|
import { Settings } from "@mui/icons-material";
|
||||||
import { IconButton, Menu, MenuItem } from "@mui/material";
|
import { Alert, IconButton, Menu, MenuItem, Snackbar } from "@mui/material";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import UserLite from "../../api-bodies/UserLite";
|
import UserLite from "../../api-bodies/UserLite";
|
||||||
import UserStatus from "../../api-bodies/UserStatus";
|
import UserStatus from "../../api-bodies/UserStatus";
|
||||||
@ -22,6 +22,7 @@ interface Props {
|
|||||||
const SettingsButton: React.FC<Props> = ({ user, status }: Props) => {
|
const SettingsButton: React.FC<Props> = ({ user, status }: Props) => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
||||||
|
const [snackbarOpen, setSnackbarOpen] = useState(false);
|
||||||
const me = useAppSelector(selectMe);
|
const me = useAppSelector(selectMe);
|
||||||
const favoritesUuids = useAppSelector(selectFavorites);
|
const favoritesUuids = useAppSelector(selectFavorites);
|
||||||
const meeting = useAppSelector((state) =>
|
const meeting = useAppSelector((state) =>
|
||||||
@ -35,6 +36,12 @@ const SettingsButton: React.FC<Props> = ({ user, status }: Props) => {
|
|||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
setAnchorEl(null);
|
setAnchorEl(null);
|
||||||
};
|
};
|
||||||
|
const handleSnackbarClose = (event?: React.SyntheticEvent | Event, reason?: string) => {
|
||||||
|
if (reason === "clickaway") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setSnackbarOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@ -66,12 +73,14 @@ const SettingsButton: React.FC<Props> = ({ user, status }: Props) => {
|
|||||||
) : (
|
) : (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
setSnackbarOpen(true);
|
||||||
handleClose();
|
handleClose();
|
||||||
dispatch(addFavorite({ userId: me, toBeAdded: user.uuid }));
|
dispatch(addFavorite({ userId: me, toBeAdded: user.uuid }));
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Add to Favorites
|
Add to Favorites
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
|
||||||
)}
|
)}
|
||||||
{status.inMeeting ? (
|
{status.inMeeting ? (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
@ -93,6 +102,13 @@ const SettingsButton: React.FC<Props> = ({ user, status }: Props) => {
|
|||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={handleClose}>Create meeting</MenuItem>
|
<MenuItem onClick={handleClose}>Create meeting</MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
|
<Snackbar
|
||||||
|
anchorOrigin={{ vertical: "bottom", horizontal: "right" }}
|
||||||
|
open={snackbarOpen} autoHideDuration={3000} onClose={handleSnackbarClose}>
|
||||||
|
<Alert onClose={handleSnackbarClose} severity="success" sx={{ width: "100%" }}>
|
||||||
|
User successfully added to favourites list!
|
||||||
|
</Alert>
|
||||||
|
</Snackbar>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user