2024-03-08 14:58:36 +01:00
|
|
|
import React from 'react'
|
|
|
|
import {
|
|
|
|
Button,
|
|
|
|
Menu,
|
|
|
|
MenuButton,
|
|
|
|
MenuItem,
|
|
|
|
MenuList,
|
|
|
|
useDisclosure,
|
|
|
|
} 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-03-08 14:58:36 +01:00
|
|
|
import EditUser from '../Admin/EditUser'
|
|
|
|
import EditItem from '../Items/EditItem'
|
|
|
|
import Delete from './DeleteAlert'
|
|
|
|
import { ItemOut, UserOut } from '../../client'
|
2024-02-12 16:46:51 -05:00
|
|
|
|
|
|
|
interface ActionsMenuProps {
|
2024-03-08 14:58:36 +01:00
|
|
|
type: string
|
|
|
|
value: ItemOut | UserOut
|
|
|
|
disabled?: boolean
|
2024-02-12 16:46:51 -05:00
|
|
|
}
|
|
|
|
|
2024-03-07 19:16:23 +01:00
|
|
|
const ActionsMenu: React.FC<ActionsMenuProps> = ({ type, value, disabled }) => {
|
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>
|
|
|
|
{type === 'User' ? (
|
|
|
|
<EditUser
|
|
|
|
user={value as UserOut}
|
|
|
|
isOpen={editUserModal.isOpen}
|
|
|
|
onClose={editUserModal.onClose}
|
|
|
|
/>
|
|
|
|
) : (
|
|
|
|
<EditItem
|
|
|
|
item={value as ItemOut}
|
|
|
|
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
|