diff --git a/src/courseware/course/sequence/Unit.jsx b/src/courseware/course/sequence/Unit.jsx index e17a0b59..3dae0419 100644 --- a/src/courseware/course/sequence/Unit.jsx +++ b/src/courseware/course/sequence/Unit.jsx @@ -9,6 +9,7 @@ import { useDispatch } from 'react-redux'; import PropTypes from 'prop-types'; import { getConfig } from '@edx/frontend-platform'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; +import { Modal } from '@edx/paragon'; import messages from './messages'; import BookmarkButton from '../bookmark/BookmarkButton'; import { useModel } from '../../../generic/model-store'; @@ -64,6 +65,7 @@ function Unit({ const [iframeHeight, setIframeHeight] = useState(0); const [hasLoaded, setHasLoaded] = useState(false); + const [modalOptions, setModalOptions] = useState({ open: false }); const unit = useModel('units', id); const course = useModel('courses', courseId); @@ -89,6 +91,9 @@ function Unit({ onLoaded(); } } + } else if (type === 'plugin.modal') { + payload.open = true; + setModalOptions(payload); } } // If we currently have an event listener, remove it. @@ -130,6 +135,27 @@ function Unit({ srMessage={intl.formatMessage(messages['learn.loading.learning.sequence'])} /> )} + {modalOptions.open && ( + + {modalOptions.body + ?
{ modalOptions.body }
+ : ( +