import { faCopy as copyIcon, faImage as pictureIcon } from '@fortawesome/free-regular-svg-icons'; import { faTags as tagsIcon, faChartPie as pieChartIcon, faEllipsisV as menuIcon, faQrcode as qrIcon, faMinusCircle as deleteIcon, faEdit as editIcon, } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import React from 'react'; import { CopyToClipboard } from 'react-copy-to-clipboard'; import { Link } from 'react-router-dom'; import { ButtonDropdown, DropdownItem, DropdownMenu, DropdownToggle } from 'reactstrap'; import PropTypes from 'prop-types'; import { isEmpty } from 'ramda'; import { serverType } from '../../servers/prop-types'; import { compareVersions } from '../../utils/utils'; import { shortUrlType } from '../reducers/shortUrlsList'; import PreviewModal from './PreviewModal'; import QrCodeModal from './QrCodeModal'; import './ShortUrlsRowMenu.scss'; const ShortUrlsRowMenu = ( DeleteShortUrlModal, EditTagsModal, EditMetaModal ) => class ShortUrlsRowMenu extends React.Component { static propTypes = { onCopyToClipboard: PropTypes.func, selectedServer: serverType, shortUrl: shortUrlType, }; state = { isOpen: false, isQrModalOpen: false, isPreviewModalOpen: false, isTagsModalOpen: false, isMetaModalOpen: false, isDeleteModalOpen: false, }; toggle = () => this.setState(({ isOpen }) => ({ isOpen: !isOpen })); render() { const { onCopyToClipboard, shortUrl, selectedServer } = this.props; const completeShortUrl = shortUrl && shortUrl.shortUrl ? shortUrl.shortUrl : ''; const currentServerVersion = selectedServer ? selectedServer.version : ''; const showPreviewBtn = !isEmpty(currentServerVersion) && compareVersions(currentServerVersion, '<', '2.0.0'); const toggleModal = (prop) => () => this.setState((prevState) => ({ [prop]: !prevState[prop] })); const toggleQrCode = toggleModal('isQrModalOpen'); const togglePreview = toggleModal('isPreviewModalOpen'); const toggleTags = toggleModal('isTagsModalOpen'); const toggleMeta = toggleModal('isMetaModalOpen'); const toggleDelete = toggleModal('isDeleteModalOpen'); return (    Visit stats Edit tags Edit metadata Delete short URL {showPreviewBtn && ( Preview )} QR code {showPreviewBtn && } Copy to clipboard ); } }; export default ShortUrlsRowMenu;