refactor: created custom hook for isMobile check
This commit is contained in:
@@ -10,7 +10,7 @@ import { IntlProvider } from '@edx/frontend-platform/i18n';
|
||||
import initializeStore from './store';
|
||||
import CourseAuthoringPage from './CourseAuthoringPage';
|
||||
import PagesAndResources from './pages-and-resources/PagesAndResources';
|
||||
import executeThunk from './utils';
|
||||
import { executeThunk } from './utils';
|
||||
import { fetchCourseApps } from './pages-and-resources/data/thunks';
|
||||
|
||||
const courseId = 'course-v1:edX+TestX+Test_Course';
|
||||
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
import { Formik } from 'formik';
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import * as Yup from 'yup';
|
||||
import { useMediaQuery } from 'react-responsive';
|
||||
import { RequestStatus } from '../../data/constants';
|
||||
import FormSwitchGroup from '../../generic/FormSwitchGroup';
|
||||
import { useModel } from '../../generic/model-store';
|
||||
@@ -18,6 +17,7 @@ import { updateSavingStatus } from '../data/slice';
|
||||
import AppConfigFormDivider from '../discussions/app-config-form/apps/shared/AppConfigFormDivider';
|
||||
import { PagesAndResourcesContext } from '../PagesAndResourcesProvider';
|
||||
import messages from './messages';
|
||||
import { useIsMobile } from '../../utils';
|
||||
|
||||
function AppSettingsForm({ formikProps, children }) {
|
||||
return children && (
|
||||
@@ -65,7 +65,7 @@ function AppSettingsModal({
|
||||
const appInfo = useModel('courseApps', appId);
|
||||
const dispatch = useDispatch();
|
||||
const submitButtonState = updateSettingsRequestStatus === RequestStatus.IN_PROGRESS ? 'pending' : 'default';
|
||||
const isTabletOrMobile = useMediaQuery({ query: '(max-width: 768px)' });
|
||||
const isTabletOrMobile = useIsMobile();
|
||||
const modalVariant = isTabletOrMobile ? 'dark' : 'default';
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -9,7 +9,7 @@ import MockAdapter from 'axios-mock-adapter';
|
||||
import { getAppsUrl } from '../../../data/api';
|
||||
import { fetchApps } from '../../../data/thunks';
|
||||
import initializeStore from '../../../../../store';
|
||||
import executeThunk from '../../../../../utils';
|
||||
import { executeThunk } from '../../../../../utils';
|
||||
import {
|
||||
legacyApiResponse,
|
||||
} from '../../../factories/mockApiResponses';
|
||||
|
||||
@@ -18,7 +18,7 @@ import DiscussionTopics from './DiscussionTopics';
|
||||
import initializeStore from '../../../../../../store';
|
||||
import { getAppsUrl } from '../../../../data/api';
|
||||
import { fetchApps } from '../../../../data/thunks';
|
||||
import executeThunk from '../../../../../../utils';
|
||||
import { executeThunk } from '../../../../../../utils';
|
||||
import { legacyApiResponse } from '../../../../factories/mockApiResponses';
|
||||
import LegacyConfigFormProvider from '../../legacy/LegacyConfigFormProvider';
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ import MockAdapter from 'axios-mock-adapter';
|
||||
import { Context as ResponsiveContext } from 'react-responsive';
|
||||
|
||||
import initializeStore from '../../../store';
|
||||
import executeThunk from '../../../utils';
|
||||
import { executeThunk } from '../../../utils';
|
||||
import { getAppsUrl } from '../data/api';
|
||||
import { fetchApps } from '../data/thunks';
|
||||
import { emptyAppApiResponse, legacyApiResponse, piazzaApiResponse } from '../factories/mockApiResponses';
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
import { fetchApps, saveAppConfig } from './thunks';
|
||||
import { LOADED } from '../../../data/slice';
|
||||
import { legacyApiResponse, piazzaApiResponse } from '../factories/mockApiResponses';
|
||||
import executeThunk from '../../../utils';
|
||||
import { executeThunk } from '../../../utils';
|
||||
|
||||
const courseId = 'course-v1:edX+TestX+Test_Course';
|
||||
const pagesAndResourcesPath = `/course/${courseId}/pages-and-resources`;
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
const executeThunk = async (thunk, dispatch, getState) => {
|
||||
import { useMediaQuery } from 'react-responsive';
|
||||
|
||||
export const executeThunk = async (thunk, dispatch, getState) => {
|
||||
await thunk(dispatch, getState);
|
||||
await new Promise(setImmediate);
|
||||
};
|
||||
|
||||
export default executeThunk;
|
||||
export function useIsMobile() {
|
||||
return useMediaQuery({ query: '(max-width: 768px)' });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user