From 977d9e6de40adabe5afc9b8aacdfa3cefdb9456c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20G?= Date: Fri, 27 Oct 2023 16:46:27 +0200 Subject: [PATCH] refactor: move action buttons to a edit menu --- .../AnnouncementsPage/AnnouncementsPage.tsx | 72 +++++++++++++++---- 1 file changed, 58 insertions(+), 14 deletions(-) diff --git a/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx b/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx index dd509126..68601c98 100644 --- a/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx +++ b/plugins/announcements/src/components/AnnouncementsPage/AnnouncementsPage.tsx @@ -28,10 +28,14 @@ import { import Alert from '@material-ui/lab/Alert'; import DeleteIcon from '@material-ui/icons/Delete'; import EditIcon from '@material-ui/icons/Edit'; +import MoreVertIcon from '@material-ui/icons/MoreVert'; import { - Button, CardActions, CardContent, + IconButton, + ListItemIcon, + Menu, + MenuItem, makeStyles, } from '@material-ui/core'; import { @@ -40,6 +44,7 @@ import { announcementViewRouteRef, rootRouteRef, } from '../../routes'; + import { Announcement, announcementsApiRef } from '../../api'; import { DeleteAnnouncementDialog } from './DeleteAnnouncementDialog'; import { useDeleteAnnouncementDialogState } from './useDeleteAnnouncementDialogState'; @@ -99,28 +104,67 @@ const AnnouncementCard = ({ , {DateTime.fromISO(announcement.created_at).toRelative()} ); + const { loading: loadingDeletePermission, allowed: canDelete } = usePermission({ permission: announcementDeletePermission }); const { loading: loadingUpdatePermission, allowed: canUpdate } = usePermission({ permission: announcementUpdatePermission }); + const AnnoucementEditMenu = () => { + const [open, setOpen] = React.useState(false); + const [anchorEl, setAnchorEl] = React.useState( + undefined, + ); + + const handleOpenEditMenu = (event: React.MouseEvent) => { + setAnchorEl(event.currentTarget); + setOpen(true); + }; + + const handleCloseEditClose = () => { + setAnchorEl(undefined); + setOpen(false); + }; + return ( + <> + + + + + {!loadingUpdatePermission && canUpdate && ( + + + + + EDIT + + )} + {!loadingDeletePermission && canDelete && ( + + + + + DELETE + + )} + + + ); + }; + return ( {announcement.excerpt} - {!loadingUpdatePermission && canUpdate && ( - - - - )} - {!loadingDeletePermission && canDelete && ( - - )} + );