diff --git a/.env b/.env index 5216b43b6..39a602e2e 100644 --- a/.env +++ b/.env @@ -25,3 +25,4 @@ SUPPORT_URL='' USER_INFO_COOKIE_NAME='' ENABLE_PROGRESS_GRAPH_SETTINGS=false ENABLE_TEAM_TYPE_SETTING=false +ENABLE_NEW_EDITOR_PAGES=false diff --git a/.env.development b/.env.development index 93cc6f42d..06d577997 100644 --- a/.env.development +++ b/.env.development @@ -27,3 +27,4 @@ SUPPORT_URL='https://support.edx.org' USER_INFO_COOKIE_NAME='edx-user-info' ENABLE_PROGRESS_GRAPH_SETTINGS=false ENABLE_TEAM_TYPE_SETTING=false +ENABLE_NEW_EDITOR_PAGES=true diff --git a/.env.test b/.env.test index b81b58ced..7720445d3 100644 --- a/.env.test +++ b/.env.test @@ -26,3 +26,4 @@ SUPPORT_URL='https://support.edx.org' USER_INFO_COOKIE_NAME='edx-user-info' ENABLE_PROGRESS_GRAPH_SETTINGS=false ENABLE_TEAM_TYPE_SETTING=false +ENABLE_NEW_EDITOR_PAGES=false diff --git a/package-lock.json b/package-lock.json index 84cd7e231..f44214ff9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3713,6 +3713,40 @@ } } }, + "@edx/frontend-lib-content-components": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@edx/frontend-lib-content-components/-/frontend-lib-content-components-1.0.0.tgz", + "integrity": "sha512-mclbKMyHISEzy0Gqe7jTleBf7vl6CshWSVOCtctLP/3d8vJkh7mXjDfisTcbF73D4zsEKYmdbkLLJcN0SL64jg==", + "requires": { + "babel-polyfill": "6.26.0", + "react-responsive": "8.2.0", + "react-transition-group": "4.4.2" + }, + "dependencies": { + "react-responsive": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-8.2.0.tgz", + "integrity": "sha512-iagCqVrw4QSjhxKp3I/YK6+ODkWY6G+YPElvdYKiUUbywwh9Ds0M7r26Fj2/7dWFFbOpcGnJE6uE7aMck8j5Qg==", + "requires": { + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.3.0", + "prop-types": "^15.6.1", + "shallow-equal": "^1.1.0" + } + }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + } + } + }, "@edx/frontend-platform": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/@edx/frontend-platform/-/frontend-platform-1.14.0.tgz", @@ -7745,7 +7779,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", @@ -7755,14 +7788,12 @@ "core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", - "dev": true + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" } } }, @@ -7800,7 +7831,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -7809,14 +7839,12 @@ "core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" } } }, diff --git a/package.json b/package.json index b0453e378..14d921a29 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "@edx/brand": "npm:@edx/brand-openedx@1.1.0", "@edx/frontend-component-footer": "10.1.6", "@edx/frontend-platform": "1.14.0", + "@edx/frontend-lib-content-components": "1.0.0", "@edx/paragon": "16.17.0", "@fortawesome/fontawesome-svg-core": "1.2.28", "@fortawesome/free-brands-svg-icons": "5.11.2", diff --git a/src/CourseAuthoringRoutes.jsx b/src/CourseAuthoringRoutes.jsx index 4e3d75ec1..b26e7f694 100644 --- a/src/CourseAuthoringRoutes.jsx +++ b/src/CourseAuthoringRoutes.jsx @@ -2,10 +2,10 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Switch, useRouteMatch } from 'react-router'; import { PageRoute } from '@edx/frontend-platform/react'; - import CourseAuthoringPage from './CourseAuthoringPage'; import { PagesAndResources } from './pages-and-resources'; import ProctoredExamSettings from './proctored-exam-settings/ProctoredExamSettings'; +import EditorProvider from './editors/EditorProvider'; /** * As of this writing, these routes are mounted at a path prefixed with the following: @@ -16,6 +16,7 @@ import ProctoredExamSettings from './proctored-exam-settings/ProctoredExamSettin * * /course/:courseId/course-pages * /course/:courseId/proctored-exam-settings + * /course/:courseId/editor/:blockType/:blockId * * This component and CourseAuthoringPage should maybe be combined once we no longer need to have * CourseAuthoringPage split out for use in LegacyProctoringRoute. Once that route is removed, we @@ -33,6 +34,14 @@ export default function CourseAuthoringRoutes({ courseId }) { + + {process.env.ENABLE_NEW_EDITOR_PAGES === 'true' + && ( + + )} + ); diff --git a/src/editors/EditorProvider.jsx b/src/editors/EditorProvider.jsx new file mode 100644 index 000000000..100ed0f23 --- /dev/null +++ b/src/editors/EditorProvider.jsx @@ -0,0 +1,12 @@ +import React from 'react'; +import Placeholder from '@edx/frontend-lib-content-components'; + +const EditorProvider = () => ( +
+ +
+); +EditorProvider.propTypes = { +}; + +export default EditorProvider;