diff --git a/src/components/bulk-email-tool/bulk-email-context/BulkEmailProvider.jsx b/src/components/bulk-email-tool/bulk-email-context/BulkEmailProvider.jsx index c932485..2531878 100644 --- a/src/components/bulk-email-tool/bulk-email-context/BulkEmailProvider.jsx +++ b/src/components/bulk-email-tool/bulk-email-context/BulkEmailProvider.jsx @@ -17,6 +17,7 @@ export default function BulkEmailProvider({ children }) { combineReducers({ editor, scheduledEmailsTable }), initialState, ); + // eslint-disable-next-line react/jsx-no-constructed-context-values return {children}; } diff --git a/src/components/bulk-email-tool/bulk-email-form/bulk-email-recipient/index.js b/src/components/bulk-email-tool/bulk-email-form/bulk-email-recipient/index.js index 5e4e62f..788c581 100644 --- a/src/components/bulk-email-tool/bulk-email-form/bulk-email-recipient/index.js +++ b/src/components/bulk-email-tool/bulk-email-form/bulk-email-recipient/index.js @@ -1 +1,2 @@ +// eslint-disable-next-line no-restricted-exports export { default } from './BulkEmailRecipient'; diff --git a/src/components/bulk-email-tool/bulk-email-form/index.js b/src/components/bulk-email-tool/bulk-email-form/index.js index 4cef79c..e91ac61 100644 --- a/src/components/bulk-email-tool/bulk-email-form/index.js +++ b/src/components/bulk-email-tool/bulk-email-form/index.js @@ -1 +1,2 @@ +// eslint-disable-next-line no-restricted-exports export { default } from './BulkEmailForm'; diff --git a/src/components/bulk-email-tool/bulk-email-form/test/BulkEmailForm.test.jsx b/src/components/bulk-email-tool/bulk-email-form/test/BulkEmailForm.test.jsx index b7a2903..c9f68eb 100644 --- a/src/components/bulk-email-tool/bulk-email-form/test/BulkEmailForm.test.jsx +++ b/src/components/bulk-email-tool/bulk-email-form/test/BulkEmailForm.test.jsx @@ -32,6 +32,7 @@ function renderBulkEmailForm() { function renderBulkEmailFormContext(value) { return ( + // eslint-disable-next-line react/jsx-no-constructed-context-values diff --git a/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailHistoryTable.jsx b/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailHistoryTable.jsx index 7f7e8e4..527f927 100644 --- a/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailHistoryTable.jsx +++ b/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailHistoryTable.jsx @@ -71,12 +71,12 @@ export default function BulkEmailTaskManagerTable(props) { BulkEmailTaskManagerTable.propTypes = { errorRetrievingData: PropTypes.bool.isRequired, - tableData: PropTypes.arrayOf(PropTypes.object), + tableData: PropTypes.arrayOf(PropTypes.shape({})), tableDescription: PropTypes.string, alertWarningMessage: PropTypes.string.isRequired, alertErrorMessage: PropTypes.string.isRequired, - columns: PropTypes.arrayOf(PropTypes.object).isRequired, - additionalColumns: PropTypes.arrayOf(PropTypes.object), + columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired, + additionalColumns: PropTypes.arrayOf(PropTypes.shape({})), }; BulkEmailTaskManagerTable.defaultProps = { diff --git a/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailPendingTasksAlert.jsx b/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailPendingTasksAlert.jsx index e75d8d7..6321777 100644 --- a/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailPendingTasksAlert.jsx +++ b/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailPendingTasksAlert.jsx @@ -7,27 +7,25 @@ import { FormattedMessage } from '@edx/frontend-platform/i18n'; export default function BulkEmailPendingTasksAlert() { return ( - <> - + + + - - - - - - + + + ); } diff --git a/src/components/bulk-email-tool/bulk-email-task-manager/bulk-email-scheduled-emails-table/index.js b/src/components/bulk-email-tool/bulk-email-task-manager/bulk-email-scheduled-emails-table/index.js index 68017cc..dca55b9 100644 --- a/src/components/bulk-email-tool/bulk-email-task-manager/bulk-email-scheduled-emails-table/index.js +++ b/src/components/bulk-email-tool/bulk-email-task-manager/bulk-email-scheduled-emails-table/index.js @@ -1 +1,2 @@ +// eslint-disable-next-line no-restricted-exports export { default } from './BulkEmailScheduledEmailsTable'; diff --git a/src/components/bulk-email-tool/index.js b/src/components/bulk-email-tool/index.js index d146d12..6a9b5ed 100644 --- a/src/components/bulk-email-tool/index.js +++ b/src/components/bulk-email-tool/index.js @@ -1 +1,2 @@ +// eslint-disable-next-line no-restricted-exports export { default } from './BulkEmailTool'; diff --git a/src/components/bulk-email-tool/task-alert-modal/TaskAlertModal.jsx b/src/components/bulk-email-tool/task-alert-modal/TaskAlertModal.jsx index 72598ac..cbb8ac1 100644 --- a/src/components/bulk-email-tool/task-alert-modal/TaskAlertModal.jsx +++ b/src/components/bulk-email-tool/task-alert-modal/TaskAlertModal.jsx @@ -40,7 +40,7 @@ function TaskAlertModal(props) { // causing strange click event target issues in safari. To solve this, we want to // wrap the string in a fragment instead of a span, so that the whole button considered // a "button" target, and not a "span inside a button" - msg => <>{msg} + msg => msg } diff --git a/src/components/bulk-email-tool/task-alert-modal/index.js b/src/components/bulk-email-tool/task-alert-modal/index.js index d3465a4..ba6d207 100644 --- a/src/components/bulk-email-tool/task-alert-modal/index.js +++ b/src/components/bulk-email-tool/task-alert-modal/index.js @@ -1 +1,2 @@ +// eslint-disable-next-line no-restricted-exports export { default } from './TaskAlertModal'; diff --git a/src/components/bulk-email-tool/text-editor/index.js b/src/components/bulk-email-tool/text-editor/index.js index 0f49036..368b3ea 100644 --- a/src/components/bulk-email-tool/text-editor/index.js +++ b/src/components/bulk-email-tool/text-editor/index.js @@ -1 +1,2 @@ +// eslint-disable-next-line no-restricted-exports export { default } from './TextEditor'; diff --git a/src/components/page-container/PageContainer.jsx b/src/components/page-container/PageContainer.jsx index bb44656..826ff0e 100644 --- a/src/components/page-container/PageContainer.jsx +++ b/src/components/page-container/PageContainer.jsx @@ -53,7 +53,7 @@ export default function PageContainer(props) { }); } fetchCourseMetadata(); - }, []); + }, [courseId]); if (courseMetadata) { return ( diff --git a/src/utils/useMobileResponsive.js b/src/utils/useMobileResponsive.js index 44df6dc..57b8747 100644 --- a/src/utils/useMobileResponsive.js +++ b/src/utils/useMobileResponsive.js @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; // NOTE: These are the breakpoints used in Bootstrap v4.0.0 as seen in // the documentation (https://getbootstrap.com/docs/4.0/layout/overview/#responsive-breakpoints) @@ -29,14 +29,14 @@ const breakpoints = { */ export default function useMobileResponsive(breakpoint) { const [isMobileWindow, setIsMobileWindow] = useState(); - const checkForMobile = () => { + const checkForMobile = useCallback(() => { setIsMobileWindow(window.matchMedia(`(max-width: ${breakpoint || breakpoints.small.maxWidth}px)`).matches); - }; + }, [breakpoint]); useEffect(() => { checkForMobile(); window.addEventListener('resize', checkForMobile); // return this function here to clean up the event listener return () => window.removeEventListener('resize', checkForMobile); - }, []); + }, [checkForMobile]); return isMobileWindow; }