diff --git a/.env b/.env index 2291ec6..deb1b16 100644 --- a/.env +++ b/.env @@ -41,4 +41,4 @@ ACCOUNT_PROFILE_URL='' ENABLE_NOTICES='' CAREER_LINK_URL='' OPTIMIZELY_FULL_STACK_SDK_KEY='' -EXPERIMENT_08_23_VAN_PAINTED_DOOR=true +EXPERIMENT_08_23_VAN_PAINTED_DOOR='true' diff --git a/.env.development b/.env.development index 78e4c40..c1a60a8 100644 --- a/.env.development +++ b/.env.development @@ -48,3 +48,4 @@ ACCOUNT_PROFILE_URL='http://localhost:1995' ENABLE_NOTICES='' CAREER_LINK_URL='' OPTIMIZELY_FULL_STACK_SDK_KEY='' +EXPERIMENT_08_23_VAN_PAINTED_DOOR=true diff --git a/src/containers/CertificatePreviewModal/hooks.js b/src/containers/CertificatePreviewModal/hooks.js new file mode 100644 index 0000000..6558b22 --- /dev/null +++ b/src/containers/CertificatePreviewModal/hooks.js @@ -0,0 +1,29 @@ +import { getConfig } from '@edx/frontend-platform'; +import { useIntl } from '@edx/frontend-platform/i18n'; + +import { reduxHooks } from 'hooks'; +import messages from './messages'; + +export const useCertificatePreviewData = () => { + const { formatMessage } = useIntl(); + + const selectedCardId = reduxHooks.useCertificatePreviewData().cardId; + + const { courseId } = reduxHooks.useCardCourseRunData(selectedCardId) || {}; + + const courseTitle = courseId; + const header = formatMessage(messages.previewTitle, { courseTitle }); + + const closePreviewModal = reduxHooks.useUpdateCertificatePreviewModalCallback(null); + + const getCertificatePreviewUrl = () => `${getConfig().LMS_BASE_URL}/certificates/upsell/course/${courseId}`; + + return { + showModal: selectedCardId != null, + header, + closePreviewModal, + getCertificatePreviewUrl, + }; +}; + +export default useCertificatePreviewData; diff --git a/src/containers/CertificatePreviewModal/index.jsx b/src/containers/CertificatePreviewModal/index.jsx new file mode 100644 index 0000000..3499c9b --- /dev/null +++ b/src/containers/CertificatePreviewModal/index.jsx @@ -0,0 +1,48 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { + ModalDialog, +} from '@edx/paragon'; +import { UpgradeButton } from '../CourseCard/components/CourseCardActions/UpgradeButton'; +import useCertificatePreviewData from './hooks'; + +export const CertificatePreviewModal = ({ + cardId, +}) => { + const { + showModal, + header, + closePreviewModal, + getCertificatePreviewUrl, + } = useCertificatePreviewData(); + + return ( + +

{header}

+
+