import React from 'react'; import PropTypes from 'prop-types'; import * as ReactShare from 'react-share'; import { useIntl } from '@edx/frontend-platform/i18n'; import { Dropdown, Icon, IconButton } from '@edx/paragon'; import { MoreVert } from '@edx/paragon/icons'; import EmailSettingsModal from 'containers/EmailSettingsModal'; import UnenrollConfirmModal from 'containers/UnenrollConfirmModal'; import { useEmailSettings, useUnenrollData, useHandleToggleDropdown, useCourseCardMenu, } from './hooks'; import messages from './messages'; import useActionDisabledState from '../hooks'; export const CourseCardMenu = ({ cardId }) => { const { formatMessage } = useIntl(); const emailSettingsModal = useEmailSettings(); const unenrollModal = useUnenrollData(); const handleToggleDropdown = useHandleToggleDropdown(cardId); const { isExecutiveEd2uCourse } = useActionDisabledState(cardId); const { courseName, isMasquerading, isEmailEnabled, showUnenrollItem, showDropdown, facebook, twitter, handleTwitterShare, handleFacebookShare, } = useCourseCardMenu(cardId); if (!showDropdown) { return null; } return ( <> {showUnenrollItem && ( {formatMessage(messages.unenroll)} )} {isEmailEnabled && ( {formatMessage(messages.emailSettings)} )} {facebook.isEnabled && ( {formatMessage(messages.shareToFacebook)} )} {twitter.isEnabled && ( {formatMessage(messages.shareToTwitter)} )} {isEmailEnabled && ( )} ); }; CourseCardMenu.propTypes = { cardId: PropTypes.string.isRequired, }; export default CourseCardMenu;