* feat: Make "Pages & Resources" course apps into plugins * feat: move ora_settings * feat: move proctoring * feat: move progress * feat: move teams * feat: move wiki * feat: move Xpert settings * fix: add webpack.prod.config.js * fix: clean up unused parts of package.json files * feat: Add an error message when displaying a Course App Plugin fails * chore: fix various eslint warnings * chore: fix jest tests * fix: error preventing "npm ci" from working * feat: better tests for <SettingsComponent> * chore: move xpert_unit_summary into same dir as other plugins * fix: eslint-import-resolver-webpack is a dev dependency * chore: move learning_assistant to be a plugin too * feat: for compatibility, install 2U plugins by default * fix: bug with learning_assistant package.json
64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
|
|
import { useIntl } from '@edx/frontend-platform/i18n';
|
|
import { Hyperlink } from '@openedx/paragon';
|
|
|
|
import AppSettingsModal from 'CourseAuthoring/pages-and-resources/app-settings-modal/AppSettingsModal';
|
|
import { useModel } from 'CourseAuthoring/generic/model-store';
|
|
|
|
import messages from './messages';
|
|
|
|
const LearningAssistantSettings = ({ onClose }) => {
|
|
const appId = 'learning_assistant';
|
|
const appInfo = useModel('courseApps', appId);
|
|
const intl = useIntl();
|
|
|
|
// We need to render more than one link, so we use the bodyChildren prop.
|
|
const bodyChildren = (
|
|
appInfo?.documentationLinks?.learnMoreOpenaiDataPrivacy && appInfo?.documentationLinks?.learnMoreOpenai
|
|
? (
|
|
<div className="d-flex flex-column">
|
|
{appInfo.documentationLinks?.learnMoreOpenaiDataPrivacy && (
|
|
<Hyperlink
|
|
className="text-primary-500"
|
|
destination={appInfo.documentationLinks.learnMoreOpenaiDataPrivacy}
|
|
target="_blank"
|
|
rel="noreferrer noopener"
|
|
>
|
|
{intl.formatMessage(messages.learningAssistantOpenAIDataPrivacyLink)}
|
|
</Hyperlink>
|
|
)}
|
|
{appInfo.documentationLinks?.learnMoreOpenai && (
|
|
<Hyperlink
|
|
className="text-primary-500"
|
|
destination={appInfo.documentationLinks.learnMoreOpenai}
|
|
target="_blank"
|
|
rel="noreferrer noopener"
|
|
>
|
|
{intl.formatMessage(messages.learningAssistantOpenAILink)}
|
|
</Hyperlink>
|
|
)}
|
|
</div>
|
|
)
|
|
: null
|
|
);
|
|
|
|
return (
|
|
<AppSettingsModal
|
|
appId={appId}
|
|
title={intl.formatMessage(messages.heading)}
|
|
enableAppHelp={intl.formatMessage(messages.enableLearningAssistantHelp)}
|
|
enableAppLabel={intl.formatMessage(messages.enableLearningAssistantLabel)}
|
|
bodyChildren={bodyChildren}
|
|
onClose={onClose}
|
|
/>
|
|
);
|
|
};
|
|
|
|
LearningAssistantSettings.propTypes = {
|
|
onClose: PropTypes.func.isRequired,
|
|
};
|
|
|
|
export default LearningAssistantSettings;
|