import { IconButton, ListItemIcon, ListItemText, Menu, MenuItem, Theme } from "@mui/material"; import { blue } from "@mui/material/colors"; import MoreIcon from "@mui/icons-material/MoreVert"; import ObjectTeamsIcon from "@mui/icons-material/SupervisedUserCircle"; import { pond } from "protobuf-ts/pond"; import React, { useState } from "react"; import { isOffline } from "utils/environment"; import ObjectTeams from "teams/ObjectTeams"; import { Task, taskScope } from "models"; import { makeStyles } from "@mui/styles"; import { Done, Edit } from "@mui/icons-material"; import DeleteIcon from "@mui/icons-material/Delete"; import TaskSettings from "./TaskSettings"; const useStyles = makeStyles((theme: Theme) => ({ shareIcon: { color: blue["500"], "&:hover": { color: blue["600"] } }, removeIcon: { color: "var(--status-alert)" }, red: { color: "var(--status-alert)" } })); interface Props { task: Task; permissions: pond.Permission[]; keys: string[] types: string[] refreshCallback: () => void; markComplete: (task: Task) => void; removeTask: (task: Task) => void; } interface OpenState { // share: boolean; // users: boolean; teams: boolean; settings: boolean; // removeSelf: boolean; delete: boolean } export default function TaskActions(props: Props) { const classes = useStyles(); const { task, permissions, refreshCallback, keys, types } = props; const [anchorEl, setAnchorEl] = React.useState(null); const [openState, setOpenState] = useState({ // share: false, // users: false, teams: false, settings: false, // removeSelf: false delete: false }); const groupMenu = () => { // const canShare = permissions.includes(pond.Permission.PERMISSION_SHARE); const canEdit = permissions.includes(pond.Permission.PERMISSION_WRITE); const canManageUsers = permissions.includes(pond.Permission.PERMISSION_USERS); return ( setAnchorEl(null)} keepMounted disableAutoFocusItem> {/* {!isOffline() && canShare && ( { setOpenState({ ...openState, share: true }); setAnchorEl(null); }}> )} */} {/* {!isOffline() && canManageUsers && ( { setOpenState({ ...openState, users: true }); setAnchorEl(null); }}> )} */} {!isOffline() && canEdit && ( { props.markComplete(props.task); setAnchorEl(null); }}> )} {!isOffline() && canEdit && ( { setOpenState({ ...openState, settings: true }); setAnchorEl(null); }}> )} {!isOffline() && canManageUsers && ( { setOpenState({ ...openState, teams: true }); setAnchorEl(null); }}> )} {permissions.includes(pond.Permission.PERMISSION_WRITE) && ( { props.removeTask(props.task); setAnchorEl(null); }}> )} {/* { setOpenState({ ...openState, removeSelf: true }); setAnchorEl(null); }}> */} ); }; const dialogs = () => { const key = task.key; // const label = task.title(); return ( {/* setOpenState({ ...openState, share: false })} /> */} {/* setOpenState({ ...openState, users: false })} refreshCallback={refreshCallback} /> */} {/* setOpenState({ ...openState, removeSelf: false })} /> */} setOpenState({ ...openState, teams: false })} keys={keys} types={types} /> { setOpenState({ ...openState, settings: false}) if(r){ refreshCallback() } }} /> ); }; return ( ) => setAnchorEl(event.currentTarget)}> {groupMenu()} {dialogs()} ); }