import { useState } from "react"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { shortcutService } from "../services"; import useUserStore from "../stores/v1/user"; import { showCommonDialog } from "./Alert"; import CreateShortcutDialog from "./CreateShortcutDialog"; import GenerateQRCodeDialog from "./GenerateQRCodeDialog"; import Icon from "./Icon"; import Dropdown from "./common/Dropdown"; interface Props { shortcut: Shortcut; } const ShortcutActionsDropdown = (props: Props) => { const { shortcut } = props; const { t } = useTranslation(); const navigate = useNavigate(); const currentUser = useUserStore().getCurrentUser(); const [showEditDialog, setShowEditDialog] = useState(false); const [showQRCodeDialog, setShowQRCodeDialog] = useState(false); const havePermission = currentUser.role === "ADMIN" || shortcut.creatorId === currentUser.id; const handleDeleteShortcutButtonClick = (shortcut: Shortcut) => { showCommonDialog({ title: "Delete Shortcut", content: `Are you sure to delete shortcut \`${shortcut.name}\`? You cannot undo this action.`, style: "danger", onConfirm: async () => { await shortcutService.deleteShortcutById(shortcut.id); }, }); }; const gotoAnalytics = () => { navigate(`/shortcut/${shortcut.id}#analytics`); }; return ( <> {havePermission && ( )} {havePermission && ( )} } > {showEditDialog && ( setShowEditDialog(false)} onConfirm={() => setShowEditDialog(false)} /> )} {showQRCodeDialog && setShowQRCodeDialog(false)} />} ); }; export default ShortcutActionsDropdown;