- injectIntl is deprecated, Used useIntl() hook instead.
- ErrorLog
```
React Router caught the following error during render TypeError: r is not a function {
"componentStack": "
at A (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:5259944)
at Suspense
at d (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:65420)
at t (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:7316739)
at g (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:8043115)
at w (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:4746781)
at div
at https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:6453516
at div
at https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:7617877
at div
at h (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:4740935)
at rR (https://course-authoring.edx.org/app.756074826164c8adbdbb.js:2:1102691)
at r (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:1493518)
at injectIntl(r)
at main
at l (https://course-authoring.edx.org/app.756074826164c8adbdbb.js:2:2224276)
at cR (https://course-authoring.edx.org/app.756074826164c8adbdbb.js:2:1103620)
at r (https://course-authoring.edx.org/817.bfc0047cf532fb354633.js:2:1493518)
at injectIntl(r)"
}
```
42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
import React, { useCallback, useContext, useEffect } from 'react';
|
|
import { useDispatch } from 'react-redux';
|
|
import { useIntl } from '@edx/frontend-platform/i18n';
|
|
import { PagesAndResourcesContext } from 'CourseAuthoring/pages-and-resources/PagesAndResourcesProvider';
|
|
import { useNavigate } from 'react-router-dom';
|
|
|
|
import SettingsModal from './settings-modal/SettingsModal';
|
|
import messages from './messages';
|
|
|
|
import { fetchXpertSettings } from './data/thunks';
|
|
|
|
const XpertUnitSummarySettings = () => {
|
|
const intl = useIntl();
|
|
const { path: pagesAndResourcesPath, courseId } = useContext(PagesAndResourcesContext);
|
|
const dispatch = useDispatch();
|
|
const navigate = useNavigate();
|
|
|
|
useEffect(() => {
|
|
dispatch(fetchXpertSettings(courseId));
|
|
}, [courseId]);
|
|
|
|
const handleClose = useCallback(() => {
|
|
navigate(pagesAndResourcesPath);
|
|
}, [pagesAndResourcesPath]);
|
|
|
|
return (
|
|
<SettingsModal
|
|
appId="xpert-unit-summary"
|
|
title={intl.formatMessage(messages.heading)}
|
|
enableAppHelp={intl.formatMessage(messages.enableXpertUnitSummaryHelp)}
|
|
helpPrivacyText={intl.formatMessage(messages.enableXpertUnitSummaryHelpPrivacyLink)}
|
|
enableAppLabel={intl.formatMessage(messages.enableXpertUnitSummaryLabel)}
|
|
learnMoreText={intl.formatMessage(messages.enableXpertUnitSummaryLink)}
|
|
allUnitsEnabledText={intl.formatMessage(messages.allUnitsEnabledByDefault)}
|
|
noUnitsEnabledText={intl.formatMessage(messages.noUnitsEnabledByDefault)}
|
|
onClose={handleClose}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default XpertUnitSummarySettings;
|