2024-03-08 14:58:36 +01:00
|
|
|
import {
|
|
|
|
Button,
|
|
|
|
Menu,
|
|
|
|
MenuButton,
|
|
|
|
MenuItem,
|
|
|
|
MenuList,
|
|
|
|
useDisclosure,
|
2024-03-17 17:28:45 +01:00
|
|
|
} from "@chakra-ui/react"
|
|
|
|
import { BsThreeDotsVertical } from "react-icons/bs"
|
|
|
|
import { FiEdit, FiTrash } from "react-icons/fi"
|
2024-02-12 16:46:51 -05:00
|
|
|
|
2024-04-06 18:26:12 -05:00
|
|
|
import type { ItemPublic, UserPublic } from "../../client"
|
2024-03-17 17:28:45 +01:00
|
|
|
import EditUser from "../Admin/EditUser"
|
|
|
|
import EditItem from "../Items/EditItem"
|
|
|
|
import Delete from "./DeleteAlert"
|
2024-02-12 16:46:51 -05:00
|
|
|
|
|
|
|
interface ActionsMenuProps {
|
2024-03-08 14:58:36 +01:00
|
|
|
type: string
|
2024-04-06 18:26:12 -05:00
|
|
|
value: ItemPublic | UserPublic
|
2024-03-08 14:58:36 +01:00
|
|
|
disabled?: boolean
|
2024-02-12 16:46:51 -05:00
|
|
|
}
|
|
|
|
|
2024-03-28 20:22:28 -05:00
|
|
|
const ActionsMenu = ({ type, value, disabled }: ActionsMenuProps) => {
|
2024-03-08 14:58:36 +01:00
|
|
|
const editUserModal = useDisclosure()
|
|
|
|
const deleteModal = useDisclosure()
|
2024-02-12 16:46:51 -05:00
|
|
|
|
2024-03-08 14:58:36 +01:00
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<Menu>
|
|
|
|
<MenuButton
|
|
|
|
isDisabled={disabled}
|
|
|
|
as={Button}
|
|
|
|
rightIcon={<BsThreeDotsVertical />}
|
|
|
|
variant="unstyled"
|
2024-03-13 22:59:28 +01:00
|
|
|
/>
|
2024-03-08 14:58:36 +01:00
|
|
|
<MenuList>
|
|
|
|
<MenuItem
|
|
|
|
onClick={editUserModal.onOpen}
|
|
|
|
icon={<FiEdit fontSize="16px" />}
|
|
|
|
>
|
|
|
|
Edit {type}
|
|
|
|
</MenuItem>
|
|
|
|
<MenuItem
|
|
|
|
onClick={deleteModal.onOpen}
|
|
|
|
icon={<FiTrash fontSize="16px" />}
|
|
|
|
color="ui.danger"
|
|
|
|
>
|
|
|
|
Delete {type}
|
|
|
|
</MenuItem>
|
|
|
|
</MenuList>
|
2024-03-17 17:28:45 +01:00
|
|
|
{type === "User" ? (
|
2024-03-08 14:58:36 +01:00
|
|
|
<EditUser
|
2024-04-06 18:26:12 -05:00
|
|
|
user={value as UserPublic}
|
2024-03-08 14:58:36 +01:00
|
|
|
isOpen={editUserModal.isOpen}
|
|
|
|
onClose={editUserModal.onClose}
|
|
|
|
/>
|
|
|
|
) : (
|
|
|
|
<EditItem
|
2024-04-06 18:26:12 -05:00
|
|
|
item={value as ItemPublic}
|
2024-03-08 14:58:36 +01:00
|
|
|
isOpen={editUserModal.isOpen}
|
|
|
|
onClose={editUserModal.onClose}
|
|
|
|
/>
|
|
|
|
)}
|
|
|
|
<Delete
|
|
|
|
type={type}
|
|
|
|
id={value.id}
|
|
|
|
isOpen={deleteModal.isOpen}
|
|
|
|
onClose={deleteModal.onClose}
|
|
|
|
/>
|
|
|
|
</Menu>
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|
2024-02-12 16:46:51 -05:00
|
|
|
|
2024-03-08 14:58:36 +01:00
|
|
|
export default ActionsMenu
|