From d59e179ac15c29300f473e8db70a72f5cf2d3284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brayan=20Cer=C3=B3n?= <86393372+bra-i-am@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:05:24 -0500 Subject: [PATCH] perf: update redwood branch with upstream (#8) * chore(deps): update dependency glob to v10.3.15 * fix(deps): update dependency @edx/frontend-component-header to v5.3.1 * fix(deps): update dependency @edx/frontend-component-footer to v13.2.0 * fix: update footer to resolve (not so) optional peer dependency issue (#1022) * feat: use frontend-plugin-framework to provide a FooterSlot (#1017) * perf: add css-variables support to redwood (#6) * refactor: update package-lock * refactor: solve issues with package-lock --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Brian Smith <112954497+brian-smith-tcril@users.noreply.github.com> --- README.rst | 6 ++ package-lock.json | 97 ++++++++++++++---- package.json | 4 +- src/index.jsx | 4 +- src/plugin-slots/FooterSlot/README.md | 50 +++++++++ .../FooterSlot/images/custom_footer.png | Bin 0 -> 13551 bytes .../FooterSlot/images/default_footer.png | Bin 0 -> 14371 bytes src/plugin-slots/README.md | 3 + 8 files changed, 140 insertions(+), 24 deletions(-) create mode 100644 src/plugin-slots/FooterSlot/README.md create mode 100644 src/plugin-slots/FooterSlot/images/custom_footer.png create mode 100644 src/plugin-slots/FooterSlot/images/default_footer.png create mode 100644 src/plugin-slots/README.md diff --git a/README.rst b/README.rst index 1cb1ff35c..f90234075 100755 --- a/README.rst +++ b/README.rst @@ -71,6 +71,12 @@ Profile MFE for local development via the `devstack`_. Once the dev server is up, visit http://localhost:1995/u/staff. +Plugins +======= +This MFE can be customized using `Frontend Plugin Framework `_. + +The parts of this MFE that can be customized in that manner are documented `here `_. + Configuration ============= diff --git a/package-lock.json b/package-lock.json index 53436eb5d..c1001deb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "license": "AGPL-3.0", "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", - "@edx/frontend-component-footer": "npm:@edunext/frontend-component-footer@13.0.4-alpha.1", "@edx/frontend-component-header": "npm:@edunext/frontend-component-header@5.0.2-alpha.1", "@edx/frontend-platform": "npm:@edunext/frontend-platform@7.1.2-alpha.1", "@edx/openedx-atlas": "^0.6.0", @@ -19,6 +18,7 @@ "@fortawesome/free-regular-svg-icons": "6.5.2", "@fortawesome/free-solid-svg-icons": "6.5.2", "@fortawesome/react-fontawesome": "0.2.0", + "@openedx/frontend-slot-footer": "^1.0.2", "@openedx/paragon": "23.0.0-alpha.1", "@pact-foundation/pact": "^11.0.2", "@redux-devtools/extension": "3.3.0", @@ -52,7 +52,7 @@ "@openedx/frontend-build": "github:edunext/frontend-build#ednx-release/css-variables-13.1.4", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "12.1.5", - "glob": "10.3.12", + "glob": "10.3.15", "reactifex": "1.1.1", "redux-mock-store": "1.5.4" } @@ -3083,6 +3083,7 @@ "version": "13.0.4-alpha.1", "resolved": "https://registry.npmjs.org/@edunext/frontend-component-footer/-/frontend-component-footer-13.0.4-alpha.1.tgz", "integrity": "sha512-TBWsH+k3WkBLxMLrZBs3GPTLeJZKYaBilrB/CaCtXw3mEASgapdncL1g/SDnk3ATWSQjvdtYmCohfuGxeOg1bA==", + "peer": true, "dependencies": { "@fortawesome/fontawesome-svg-core": "6.5.1", "@fortawesome/free-brands-svg-icons": "6.5.1", @@ -3104,6 +3105,7 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.1.tgz", "integrity": "sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==", "hasInstallScript": true, + "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.5.1" }, @@ -3116,6 +3118,7 @@ "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.5.1.tgz", "integrity": "sha512-093l7DAkx0aEtBq66Sf19MgoZewv1zeY9/4C7vSKPO4qMwEsW/2VYTUTpBtLwfb9T2R73tXaRDPmE4UqLCYHfg==", "hasInstallScript": true, + "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.5.1" }, @@ -3128,6 +3131,7 @@ "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.5.1.tgz", "integrity": "sha512-m6ShXn+wvqEU69wSP84coxLbNl7sGVZb+Ca+XZq6k30SzuP3X4TfPqtycgUh9ASwlNh5OfQCd8pDIWxl+O+LlQ==", "hasInstallScript": true, + "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.5.1" }, @@ -3140,6 +3144,7 @@ "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.5.1.tgz", "integrity": "sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==", "hasInstallScript": true, + "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.5.1" }, @@ -6051,6 +6056,49 @@ "node": ">=6" } }, + "node_modules/@openedx/frontend-plugin-framework": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@openedx/frontend-plugin-framework/-/frontend-plugin-framework-1.2.0.tgz", + "integrity": "sha512-A5Haf7QtS3gY21KS0TK7lC059HvclC+kW4QZNwxqaWX1LNoRULDO3NFI/NaGBY02hBT8ZoXzoyrTOHkTJ5wJhg==", + "dependencies": { + "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", + "classnames": "^2.3.2", + "core-js": "3.36.0", + "react-redux": "7.2.9", + "redux": "4.2.1", + "regenerator-runtime": "0.14.1" + }, + "peerDependencies": { + "@edx/frontend-platform": "^7.0.0 || ^8.0.0 || ^7.1.2-alpha.1", + "@openedx/paragon": "^21.0.0 || ^22.0.0 || ^23.0.0-alpha.1", + "prop-types": "^15.8.0", + "react": "^17.0.0", + "react-dom": "^17.0.0", + "react-error-boundary": "^4.0.11" + } + }, + "node_modules/@openedx/frontend-plugin-framework/node_modules/core-js": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/@openedx/frontend-slot-footer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@openedx/frontend-slot-footer/-/frontend-slot-footer-1.0.2.tgz", + "integrity": "sha512-Wmx/Das4wr3jYQ1/wk9ctYcM9ztfpY5fm6d5UKFSnKK1DbUbjliaPC3mdGR4wVRnH4MAf1OnNGZ8oj/bTDPGHg==", + "dependencies": { + "@openedx/frontend-plugin-framework": "^1.1.2" + }, + "peerDependencies": { + "@edx/frontend-component-footer": "*", + "react": "^17.0.0" + } + }, "node_modules/@openedx/paragon": { "version": "23.0.0-alpha.1", "resolved": "https://registry.npmjs.org/@openedx/paragon/-/paragon-23.0.0-alpha.1.tgz", @@ -12761,21 +12809,21 @@ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -17604,9 +17652,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -18388,27 +18436,24 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -19971,6 +20016,18 @@ "react": ">= 16.8 || 18.0.0" } }, + "node_modules/react-error-boundary": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.13.tgz", + "integrity": "sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", diff --git a/package.json b/package.json index 0b7d785ec..fd944991e 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ ], "dependencies": { "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", - "@edx/frontend-component-footer": "npm:@edunext/frontend-component-footer@13.0.4-alpha.1", "@edx/frontend-component-header": "npm:@edunext/frontend-component-header@5.0.2-alpha.1", "@edx/frontend-platform": "npm:@edunext/frontend-platform@7.1.2-alpha.1", "@edx/openedx-atlas": "^0.6.0", @@ -39,6 +38,7 @@ "@fortawesome/free-regular-svg-icons": "6.5.2", "@fortawesome/free-solid-svg-icons": "6.5.2", "@fortawesome/react-fontawesome": "0.2.0", + "@openedx/frontend-slot-footer": "^1.0.2", "@openedx/paragon": "23.0.0-alpha.1", "@pact-foundation/pact": "^11.0.2", "@redux-devtools/extension": "3.3.0", @@ -72,7 +72,7 @@ "@openedx/frontend-build": "github:edunext/frontend-build#ednx-release/css-variables-13.1.4", "@testing-library/jest-dom": "6.4.5", "@testing-library/react": "12.1.5", - "glob": "10.3.12", + "glob": "10.3.15", "reactifex": "1.1.1", "redux-mock-store": "1.5.4" } diff --git a/src/index.jsx b/src/index.jsx index 58a59b020..d3aba8fff 100755 --- a/src/index.jsx +++ b/src/index.jsx @@ -17,7 +17,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import Header from '@edx/frontend-component-header'; -import Footer from '@edx/frontend-component-footer'; +import FooterSlot from '@openedx/frontend-slot-footer'; import messages from './i18n'; import configureStore from './data/configureStore'; @@ -35,7 +35,7 @@ subscribe(APP_READY, () => {
-