@edx/frontend-app-learner-dashboard 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.rst +86 -0
- package/dist/Main.d.ts +2 -0
- package/dist/Main.js +16 -0
- package/dist/Main.js.map +1 -0
- package/dist/app.d.ts +3 -0
- package/dist/app.js +19 -0
- package/dist/app.js.map +1 -0
- package/dist/assets/empty-course.svg +49 -0
- package/dist/assets/more-courses-sidewidget.svg +52 -0
- package/dist/assets/verified-ribbon.png +0 -0
- package/dist/components/Banner.d.ts +24 -0
- package/dist/components/Banner.js +19 -0
- package/dist/components/Banner.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +3 -0
- package/dist/constants.js.map +1 -0
- package/dist/containers/CourseCard/CourseCard.scss +73 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ActionButton/hooks.d.ts +2 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ActionButton/hooks.js +7 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ActionButton/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ActionButton/index.d.ts +2 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ActionButton/index.js +10 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ActionButton/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/BeginCourseButton.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardActions/BeginCourseButton.js +31 -0
- package/dist/containers/CourseCard/components/CourseCardActions/BeginCourseButton.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ResumeButton.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ResumeButton.js +32 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ResumeButton.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/SelectSessionButton.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardActions/SelectSessionButton.js +19 -0
- package/dist/containers/CourseCard/components/CourseCardActions/SelectSessionButton.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ViewCourseButton.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ViewCourseButton.js +23 -0
- package/dist/containers/CourseCard/components/CourseCardActions/ViewCourseButton.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/index.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardActions/index.js +26 -0
- package/dist/containers/CourseCard/components/CourseCardActions/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardActions/messages.d.ts +32 -0
- package/dist/containers/CourseCard/components/CourseCardActions/messages.js +25 -0
- package/dist/containers/CourseCard/components/CourseCardActions/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CertificateBanner.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CertificateBanner.js +63 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CertificateBanner.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CourseBanner.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CourseBanner.js +36 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CourseBanner.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/hooks.d.ts +17 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/hooks.js +58 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.js +23 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/messages.d.ts +16 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/messages.js +15 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.js +30 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/EligibleContent.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/EligibleContent.js +26 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/EligibleContent.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.js +27 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.js +23 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/RejectedContent.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/RejectedContent.js +22 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/RejectedContent.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.d.ts +30 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.js +27 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditContent.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/hooks.d.ts +5 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/hooks.js +12 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/index.d.ts +19 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/index.js +24 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/CreditRequestForm/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/ProviderLink.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/ProviderLink.js +16 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/ProviderLink.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/hooks.d.ts +9 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/hooks.js +31 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/messages.d.ts +88 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/messages.js +60 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/EntitlementBanner.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/EntitlementBanner.js +42 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/EntitlementBanner.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/ProgramsList.d.ts +13 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/ProgramsList.js +12 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/ProgramsList.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/index.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/index.js +23 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/messages.d.ts +40 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/messages.js +30 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/index.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/index.js +22 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/messages.d.ts +160 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/messages.js +105 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.d.ts +16 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js +51 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/index.d.ts +11 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/index.js +16 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/index.scss +3 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/messages.d.ts +56 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/messages.js +40 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardImage.d.ts +13 -0
- package/dist/containers/CourseCard/components/CourseCardImage.js +35 -0
- package/dist/containers/CourseCard/components/CourseCardImage.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/SocialShareMenu.d.ts +17 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/SocialShareMenu.js +43 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/SocialShareMenu.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/hooks.d.ts +26 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/hooks.js +67 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/index.d.ts +13 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/index.js +34 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/index.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/messages.d.ts +48 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/messages.js +35 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardTitle.d.ts +11 -0
- package/dist/containers/CourseCard/components/CourseCardTitle.js +22 -0
- package/dist/containers/CourseCard/components/CourseCardTitle.js.map +1 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/hooks.d.ts +11 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/hooks.js +29 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/hooks.js.map +1 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/index.d.ts +10 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/index.js +20 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/index.js.map +1 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/messages.d.ts +16 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/messages.js +14 -0
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/messages.js.map +1 -0
- package/dist/containers/CourseCard/components/hooks.d.ts +8 -0
- package/dist/containers/CourseCard/components/hooks.js +25 -0
- package/dist/containers/CourseCard/components/hooks.js.map +1 -0
- package/dist/containers/CourseCard/hooks.d.ts +1 -0
- package/dist/containers/CourseCard/hooks.js +6 -0
- package/dist/containers/CourseCard/hooks.js.map +1 -0
- package/dist/containers/CourseCard/index.d.ts +10 -0
- package/dist/containers/CourseCard/index.js +22 -0
- package/dist/containers/CourseCard/index.js.map +1 -0
- package/dist/containers/CourseCard/messages.d.ts +32 -0
- package/dist/containers/CourseCard/messages.js +25 -0
- package/dist/containers/CourseCard/messages.js.map +1 -0
- package/dist/containers/CourseFilterControls/ActiveCourseFilters.d.ts +2 -0
- package/dist/containers/CourseFilterControls/ActiveCourseFilters.js +15 -0
- package/dist/containers/CourseFilterControls/ActiveCourseFilters.js.map +1 -0
- package/dist/containers/CourseFilterControls/CourseFilterControls.d.ts +2 -0
- package/dist/containers/CourseFilterControls/CourseFilterControls.js +41 -0
- package/dist/containers/CourseFilterControls/CourseFilterControls.js.map +1 -0
- package/dist/containers/CourseFilterControls/components/Checkbox.d.ts +10 -0
- package/dist/containers/CourseFilterControls/components/Checkbox.js +15 -0
- package/dist/containers/CourseFilterControls/components/Checkbox.js.map +1 -0
- package/dist/containers/CourseFilterControls/components/FilterForm.d.ts +13 -0
- package/dist/containers/CourseFilterControls/components/FilterForm.js +25 -0
- package/dist/containers/CourseFilterControls/components/FilterForm.js.map +1 -0
- package/dist/containers/CourseFilterControls/components/SortForm.d.ts +12 -0
- package/dist/containers/CourseFilterControls/components/SortForm.js +17 -0
- package/dist/containers/CourseFilterControls/components/SortForm.js.map +1 -0
- package/dist/containers/CourseFilterControls/index.d.ts +4 -0
- package/dist/containers/CourseFilterControls/index.js +5 -0
- package/dist/containers/CourseFilterControls/index.js.map +1 -0
- package/dist/containers/CourseFilterControls/index.scss +29 -0
- package/dist/containers/CourseFilterControls/messages.d.ts +88 -0
- package/dist/containers/CourseFilterControls/messages.js +60 -0
- package/dist/containers/CourseFilterControls/messages.js.map +1 -0
- package/dist/containers/CoursesPanel/CourseList/hooks.d.ts +2 -0
- package/dist/containers/CoursesPanel/CourseList/hooks.js +7 -0
- package/dist/containers/CoursesPanel/CourseList/hooks.js.map +1 -0
- package/dist/containers/CoursesPanel/CourseList/index.d.ts +16 -0
- package/dist/containers/CoursesPanel/CourseList/index.js +23 -0
- package/dist/containers/CoursesPanel/CourseList/index.js.map +1 -0
- package/dist/containers/CoursesPanel/NoCoursesView/index.d.ts +2 -0
- package/dist/containers/CoursesPanel/NoCoursesView/index.js +19 -0
- package/dist/containers/CoursesPanel/NoCoursesView/index.js.map +1 -0
- package/dist/containers/CoursesPanel/NoCoursesView/index.scss +13 -0
- package/dist/containers/CoursesPanel/NoCoursesView/messages.d.ts +32 -0
- package/dist/containers/CoursesPanel/NoCoursesView/messages.js +25 -0
- package/dist/containers/CoursesPanel/NoCoursesView/messages.js.map +1 -0
- package/dist/containers/CoursesPanel/index.d.ts +5 -0
- package/dist/containers/CoursesPanel/index.js +45 -0
- package/dist/containers/CoursesPanel/index.js.map +1 -0
- package/dist/containers/CoursesPanel/index.scss +42 -0
- package/dist/containers/CoursesPanel/messages.d.ts +8 -0
- package/dist/containers/CoursesPanel/messages.js +10 -0
- package/dist/containers/CoursesPanel/messages.js.map +1 -0
- package/dist/containers/Dashboard/DashboardLayout.d.ts +58 -0
- package/dist/containers/Dashboard/DashboardLayout.js +34 -0
- package/dist/containers/Dashboard/DashboardLayout.js.map +1 -0
- package/dist/containers/Dashboard/LoadingView.d.ts +2 -0
- package/dist/containers/Dashboard/LoadingView.js +10 -0
- package/dist/containers/Dashboard/LoadingView.js.map +1 -0
- package/dist/containers/Dashboard/hooks.d.ts +15 -0
- package/dist/containers/Dashboard/hooks.js +30 -0
- package/dist/containers/Dashboard/hooks.js.map +1 -0
- package/dist/containers/Dashboard/index.d.ts +2 -0
- package/dist/containers/Dashboard/index.js +23 -0
- package/dist/containers/Dashboard/index.js.map +1 -0
- package/dist/containers/Dashboard/index.scss +29 -0
- package/dist/containers/EmailSettingsModal/hooks.d.ts +10 -0
- package/dist/containers/EmailSettingsModal/hooks.js +27 -0
- package/dist/containers/EmailSettingsModal/hooks.js.map +1 -0
- package/dist/containers/EmailSettingsModal/index.d.ts +14 -0
- package/dist/containers/EmailSettingsModal/index.js +20 -0
- package/dist/containers/EmailSettingsModal/index.js.map +1 -0
- package/dist/containers/EmailSettingsModal/messages.d.ts +49 -0
- package/dist/containers/EmailSettingsModal/messages.js +35 -0
- package/dist/containers/EmailSettingsModal/messages.js.map +1 -0
- package/dist/containers/RelatedProgramsModal/components/ProgramCard.d.ts +19 -0
- package/dist/containers/RelatedProgramsModal/components/ProgramCard.js +29 -0
- package/dist/containers/RelatedProgramsModal/components/ProgramCard.js.map +1 -0
- package/dist/containers/RelatedProgramsModal/components/index.scss +23 -0
- package/dist/containers/RelatedProgramsModal/components/messages.d.ts +32 -0
- package/dist/containers/RelatedProgramsModal/components/messages.js +24 -0
- package/dist/containers/RelatedProgramsModal/components/messages.js.map +1 -0
- package/dist/containers/RelatedProgramsModal/index.d.ts +14 -0
- package/dist/containers/RelatedProgramsModal/index.js +25 -0
- package/dist/containers/RelatedProgramsModal/index.js.map +1 -0
- package/dist/containers/RelatedProgramsModal/index.scss +5 -0
- package/dist/containers/RelatedProgramsModal/messages.d.ts +17 -0
- package/dist/containers/RelatedProgramsModal/messages.js +15 -0
- package/dist/containers/RelatedProgramsModal/messages.js.map +1 -0
- package/dist/containers/SelectSessionModal/constants.d.ts +1 -0
- package/dist/containers/SelectSessionModal/constants.js +2 -0
- package/dist/containers/SelectSessionModal/constants.js.map +1 -0
- package/dist/containers/SelectSessionModal/hooks.d.ts +17 -0
- package/dist/containers/SelectSessionModal/hooks.js +76 -0
- package/dist/containers/SelectSessionModal/hooks.js.map +1 -0
- package/dist/containers/SelectSessionModal/index.d.ts +2 -0
- package/dist/containers/SelectSessionModal/index.js +17 -0
- package/dist/containers/SelectSessionModal/index.js.map +1 -0
- package/dist/containers/SelectSessionModal/messages.d.ts +56 -0
- package/dist/containers/SelectSessionModal/messages.js +40 -0
- package/dist/containers/SelectSessionModal/messages.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/components/ConfirmPane.d.ts +14 -0
- package/dist/containers/UnenrollConfirmModal/components/ConfirmPane.js +22 -0
- package/dist/containers/UnenrollConfirmModal/components/ConfirmPane.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/components/FinishedPane.d.ts +12 -0
- package/dist/containers/UnenrollConfirmModal/components/FinishedPane.js +21 -0
- package/dist/containers/UnenrollConfirmModal/components/FinishedPane.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/components/ReasonPane.d.ts +22 -0
- package/dist/containers/UnenrollConfirmModal/components/ReasonPane.js +28 -0
- package/dist/containers/UnenrollConfirmModal/components/ReasonPane.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/components/messages.d.ts +80 -0
- package/dist/containers/UnenrollConfirmModal/components/messages.js +55 -0
- package/dist/containers/UnenrollConfirmModal/components/messages.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/constants.d.ts +65 -0
- package/dist/containers/UnenrollConfirmModal/constants.js +89 -0
- package/dist/containers/UnenrollConfirmModal/constants.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/hooks/index.d.ts +25 -0
- package/dist/containers/UnenrollConfirmModal/hooks/index.js +53 -0
- package/dist/containers/UnenrollConfirmModal/hooks/index.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/hooks/reasons.d.ts +15 -0
- package/dist/containers/UnenrollConfirmModal/hooks/reasons.js +53 -0
- package/dist/containers/UnenrollConfirmModal/hooks/reasons.js.map +1 -0
- package/dist/containers/UnenrollConfirmModal/index.d.ts +14 -0
- package/dist/containers/UnenrollConfirmModal/index.js +22 -0
- package/dist/containers/UnenrollConfirmModal/index.js.map +1 -0
- package/dist/data/constants/app.d.ts +4 -0
- package/dist/data/constants/app.js +15 -0
- package/dist/data/constants/app.js.map +1 -0
- package/dist/data/constants/course.d.ts +11 -0
- package/dist/data/constants/course.js +17 -0
- package/dist/data/constants/course.js.map +1 -0
- package/dist/data/constants/credit.d.ts +5 -0
- package/dist/data/constants/credit.js +8 -0
- package/dist/data/constants/credit.js.map +1 -0
- package/dist/data/constants/files.d.ts +4 -0
- package/dist/data/constants/files.js +18 -0
- package/dist/data/constants/files.js.map +1 -0
- package/dist/data/constants/htmlKeys.d.ts +7 -0
- package/dist/data/constants/htmlKeys.js +19 -0
- package/dist/data/constants/htmlKeys.js.map +1 -0
- package/dist/data/constants/requests.d.ts +4 -0
- package/dist/data/constants/requests.js +31 -0
- package/dist/data/constants/requests.js.map +1 -0
- package/dist/data/context/FiltersProvider.d.ts +18 -0
- package/dist/data/context/FiltersProvider.js +37 -0
- package/dist/data/context/FiltersProvider.js.map +1 -0
- package/dist/data/context/MasqueradeProvider.d.ts +11 -0
- package/dist/data/context/MasqueradeProvider.js +19 -0
- package/dist/data/context/MasqueradeProvider.js.map +1 -0
- package/dist/data/context/SelectSessionProvider.d.ts +15 -0
- package/dist/data/context/SelectSessionProvider.js +40 -0
- package/dist/data/context/SelectSessionProvider.js.map +1 -0
- package/dist/data/context/index.d.ts +10 -0
- package/dist/data/context/index.js +8 -0
- package/dist/data/context/index.js.map +1 -0
- package/dist/data/contexts/GlobalDataContext.d.ts +16 -0
- package/dist/data/contexts/GlobalDataContext.js +14 -0
- package/dist/data/contexts/GlobalDataContext.js.map +1 -0
- package/dist/data/contexts/GlobalDataProvider.d.ts +3 -0
- package/dist/data/contexts/GlobalDataProvider.js +15 -0
- package/dist/data/contexts/GlobalDataProvider.js.map +1 -0
- package/dist/data/hooks/index.d.ts +3 -0
- package/dist/data/hooks/index.js +4 -0
- package/dist/data/hooks/index.js.map +1 -0
- package/dist/data/hooks/mutationHooks.d.ts +26 -0
- package/dist/data/hooks/mutationHooks.js +84 -0
- package/dist/data/hooks/mutationHooks.js.map +1 -0
- package/dist/data/hooks/queryHooks.d.ts +164 -0
- package/dist/data/hooks/queryHooks.js +57 -0
- package/dist/data/hooks/queryHooks.js.map +1 -0
- package/dist/data/hooks/queryKeys.d.ts +13 -0
- package/dist/data/hooks/queryKeys.js +15 -0
- package/dist/data/hooks/queryKeys.js.map +1 -0
- package/dist/data/services/lms/api.d.ts +32 -0
- package/dist/data/services/lms/api.js +80 -0
- package/dist/data/services/lms/api.js.map +1 -0
- package/dist/data/services/lms/constants.d.ts +8 -0
- package/dist/data/services/lms/constants.js +16 -0
- package/dist/data/services/lms/constants.js.map +1 -0
- package/dist/data/services/lms/index.d.ts +2 -0
- package/dist/data/services/lms/index.js +8 -0
- package/dist/data/services/lms/index.js.map +1 -0
- package/dist/data/services/lms/urls.d.ts +8 -0
- package/dist/data/services/lms/urls.js +37 -0
- package/dist/data/services/lms/urls.js.map +1 -0
- package/dist/data/services/lms/utils.d.ts +6 -0
- package/dist/data/services/lms/utils.js +56 -0
- package/dist/data/services/lms/utils.js.map +1 -0
- package/dist/data/services/segment/utils.d.ts +3 -0
- package/dist/data/services/segment/utils.js +12 -0
- package/dist/data/services/segment/utils.js.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.js +11 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useCourseData.d.ts +2 -0
- package/dist/hooks/useCourseData.js +8 -0
- package/dist/hooks/useCourseData.js.map +1 -0
- package/dist/hooks/useCourseTrackingEvent.d.ts +2 -0
- package/dist/hooks/useCourseTrackingEvent.js +13 -0
- package/dist/hooks/useCourseTrackingEvent.js.map +1 -0
- package/dist/hooks/useEntitlementInfo.d.ts +22 -0
- package/dist/hooks/useEntitlementInfo.js +29 -0
- package/dist/hooks/useEntitlementInfo.js.map +1 -0
- package/dist/hooks/useIsMasquerading.d.ts +2 -0
- package/dist/hooks/useIsMasquerading.js +9 -0
- package/dist/hooks/useIsMasquerading.js.map +1 -0
- package/dist/hooks/utils.d.ts +7 -0
- package/dist/hooks/utils.js +14 -0
- package/dist/hooks/utils.js.map +1 -0
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/index.js +2 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/messages.d.ts +18 -0
- package/dist/messages.js +20 -0
- package/dist/messages.js.map +1 -0
- package/dist/providers.d.ts +3 -0
- package/dist/providers.js +8 -0
- package/dist/providers.js.map +1 -0
- package/dist/routes.d.ts +13 -0
- package/dist/routes.js +29 -0
- package/dist/routes.js.map +1 -0
- package/dist/segment.d.ts +1 -0
- package/dist/segment.js +74 -0
- package/dist/segment.js.map +1 -0
- package/dist/slots/CourseBannerSlot/index.d.ts +10 -0
- package/dist/slots/CourseBannerSlot/index.js +10 -0
- package/dist/slots/CourseBannerSlot/index.js.map +1 -0
- package/dist/slots/CourseCardActionSlot/index.d.ts +10 -0
- package/dist/slots/CourseCardActionSlot/index.js +9 -0
- package/dist/slots/CourseCardActionSlot/index.js.map +1 -0
- package/dist/slots/CourseListSlot/index.d.ts +10 -0
- package/dist/slots/CourseListSlot/index.js +9 -0
- package/dist/slots/CourseListSlot/index.js.map +1 -0
- package/dist/slots/DashboardModalSlot/index.d.ts +2 -0
- package/dist/slots/DashboardModalSlot/index.js +5 -0
- package/dist/slots/DashboardModalSlot/index.js.map +1 -0
- package/dist/slots/NoCoursesViewSlot/index.d.ts +2 -0
- package/dist/slots/NoCoursesViewSlot/index.js +6 -0
- package/dist/slots/NoCoursesViewSlot/index.js.map +1 -0
- package/dist/slots/WidgetSidebarSlot/index.d.ts +2 -0
- package/dist/slots/WidgetSidebarSlot/index.js +6 -0
- package/dist/slots/WidgetSidebarSlot/index.js.map +1 -0
- package/dist/slots.d.ts +3 -0
- package/dist/slots.js +6 -0
- package/dist/slots.js.map +1 -0
- package/dist/style.scss +36 -0
- package/dist/testUtils.d.ts +86 -0
- package/dist/testUtils.js +183 -0
- package/dist/testUtils.js.map +1 -0
- package/dist/tracking/constants.d.ts +6 -0
- package/dist/tracking/constants.js +45 -0
- package/dist/tracking/constants.js.map +1 -0
- package/dist/tracking/index.d.ts +17 -0
- package/dist/tracking/index.js +17 -0
- package/dist/tracking/index.js.map +1 -0
- package/dist/tracking/trackers/course.d.ts +13 -0
- package/dist/tracking/trackers/course.js +31 -0
- package/dist/tracking/trackers/course.js.map +1 -0
- package/dist/tracking/trackers/credit.d.ts +5 -0
- package/dist/tracking/trackers/credit.js +16 -0
- package/dist/tracking/trackers/credit.js.map +1 -0
- package/dist/tracking/trackers/engagement.d.ts +9 -0
- package/dist/tracking/trackers/engagement.js +18 -0
- package/dist/tracking/trackers/engagement.js.map +1 -0
- package/dist/tracking/trackers/entitlements.d.ts +9 -0
- package/dist/tracking/trackers/entitlements.js +27 -0
- package/dist/tracking/trackers/entitlements.js.map +1 -0
- package/dist/tracking/trackers/filter.d.ts +7 -0
- package/dist/tracking/trackers/filter.js +13 -0
- package/dist/tracking/trackers/filter.js.map +1 -0
- package/dist/tracking/trackers/findCourses.d.ts +5 -0
- package/dist/tracking/trackers/findCourses.js +7 -0
- package/dist/tracking/trackers/findCourses.js.map +1 -0
- package/dist/tracking/trackers/socialShare.d.ts +2 -0
- package/dist/tracking/trackers/socialShare.js +10 -0
- package/dist/tracking/trackers/socialShare.js.map +1 -0
- package/dist/utils/StrictDict.d.ts +2 -0
- package/dist/utils/StrictDict.js +15 -0
- package/dist/utils/StrictDict.js.map +1 -0
- package/dist/utils/dataTransformers.d.ts +7 -0
- package/dist/utils/dataTransformers.js +58 -0
- package/dist/utils/dataTransformers.js.map +1 -0
- package/dist/utils/dateFormatter.d.ts +2 -0
- package/dist/utils/dateFormatter.js +8 -0
- package/dist/utils/dateFormatter.js.map +1 -0
- package/dist/utils/hooks.d.ts +5 -0
- package/dist/utils/hooks.js +10 -0
- package/dist/utils/hooks.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/keyStore.d.ts +2 -0
- package/dist/utils/keyStore.js +4 -0
- package/dist/utils/keyStore.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/ConfirmEmailBanner.scss +3 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/assets/confirm-email.svg +76 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/hooks.d.ts +10 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/hooks.js +34 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/hooks.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/index.js +19 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/messages.d.ts +48 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/messages.js +35 -0
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/CoursesLink.d.ts +1 -0
- package/dist/widgets/LearnerDashboardHeader/CoursesLink.js +8 -0
- package/dist/widgets/LearnerDashboardHeader/CoursesLink.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/DiscoverLinkMenuItem.d.ts +3 -0
- package/dist/widgets/LearnerDashboardHeader/DiscoverLinkMenuItem.js +17 -0
- package/dist/widgets/LearnerDashboardHeader/DiscoverLinkMenuItem.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.d.ts +22 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.js +44 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/index.d.ts +2 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/index.js +20 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/index.scss +38 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/messages.d.ts +48 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/messages.js +35 -0
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/messages.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/OrderHistoryLinkMenuItem.d.ts +3 -0
- package/dist/widgets/LearnerDashboardHeader/OrderHistoryLinkMenuItem.js +15 -0
- package/dist/widgets/LearnerDashboardHeader/OrderHistoryLinkMenuItem.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/ProgramsLinkMenuItem.d.ts +3 -0
- package/dist/widgets/LearnerDashboardHeader/ProgramsLinkMenuItem.js +13 -0
- package/dist/widgets/LearnerDashboardHeader/ProgramsLinkMenuItem.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/app.d.ts +3 -0
- package/dist/widgets/LearnerDashboardHeader/app.js +74 -0
- package/dist/widgets/LearnerDashboardHeader/app.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/hooks.d.ts +9 -0
- package/dist/widgets/LearnerDashboardHeader/hooks.js +15 -0
- package/dist/widgets/LearnerDashboardHeader/hooks.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/index.d.ts +1 -0
- package/dist/widgets/LearnerDashboardHeader/index.js +2 -0
- package/dist/widgets/LearnerDashboardHeader/index.js.map +1 -0
- package/dist/widgets/LearnerDashboardHeader/messages.d.ts +128 -0
- package/dist/widgets/LearnerDashboardHeader/messages.js +85 -0
- package/dist/widgets/LearnerDashboardHeader/messages.js.map +1 -0
- package/dist/widgets/LookingForChallengeWidget/index.d.ts +6 -0
- package/dist/widgets/LookingForChallengeWidget/index.js +22 -0
- package/dist/widgets/LookingForChallengeWidget/index.js.map +1 -0
- package/dist/widgets/LookingForChallengeWidget/index.scss +6 -0
- package/dist/widgets/LookingForChallengeWidget/messages.d.ts +16 -0
- package/dist/widgets/LookingForChallengeWidget/messages.js +15 -0
- package/dist/widgets/LookingForChallengeWidget/messages.js.map +1 -0
- package/dist/widgets/LookingForChallengeWidget/track.d.ts +7 -0
- package/dist/widgets/LookingForChallengeWidget/track.js +13 -0
- package/dist/widgets/LookingForChallengeWidget/track.js.map +1 -0
- package/package.json +98 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { defineMessages } from '@openedx/frontend-base';
|
|
2
|
+
const messages = defineMessages({
|
|
3
|
+
confirmNowButton: {
|
|
4
|
+
id: 'leanerDashboard.confirmEmailBanner',
|
|
5
|
+
description: 'Button for sending confirm email and open modal',
|
|
6
|
+
defaultMessage: 'Confirm Now',
|
|
7
|
+
},
|
|
8
|
+
confirmEmailTextReminderBanner: {
|
|
9
|
+
id: 'leanerDashboard.confirmEmailTextReminderBanner',
|
|
10
|
+
description: 'Text for reminding user to confirm email',
|
|
11
|
+
defaultMessage: 'Remember to confirm your email so that you can keep learning! {confirmNowButton}.',
|
|
12
|
+
},
|
|
13
|
+
verifiedConfirmEmailButton: {
|
|
14
|
+
id: 'leanerDashboard.verifiedConfirmEmailButton',
|
|
15
|
+
description: 'Button for verified confirming email',
|
|
16
|
+
defaultMessage: 'I\'ve confirmed my email',
|
|
17
|
+
},
|
|
18
|
+
confirmEmailModalHeader: {
|
|
19
|
+
id: 'leanerDashboard.confirmEmailModalHeader',
|
|
20
|
+
description: 'title for confirming email modal',
|
|
21
|
+
defaultMessage: 'Confirm your email',
|
|
22
|
+
},
|
|
23
|
+
confirmEmailModalBody: {
|
|
24
|
+
id: 'leanerDashboard.confirmEmailModalBody',
|
|
25
|
+
description: 'text hint for confirming email modal',
|
|
26
|
+
defaultMessage: 'We\'ve sent you an email to verify your account. Please check your inbox and click on the big red button to confirm and keep learning.',
|
|
27
|
+
},
|
|
28
|
+
confirmEmailImageAlt: {
|
|
29
|
+
id: 'leanerDashboard.confirmEmailImageAlt',
|
|
30
|
+
description: 'text alt confirm email image',
|
|
31
|
+
defaultMessage: 'confirm email background',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
export default messages;
|
|
35
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardHeader/ConfirmEmailBanner/messages.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,gBAAgB,EAAE;QAChB,EAAE,EAAE,oCAAoC;QACxC,WAAW,EAAE,iDAAiD;QAC9D,cAAc,EAAE,aAAa;KAC9B;IACD,8BAA8B,EAAE;QAC9B,EAAE,EAAE,gDAAgD;QACpD,WAAW,EAAE,0CAA0C;QACvD,cAAc,EAAE,mFAAmF;KACpG;IACD,0BAA0B,EAAE;QAC1B,EAAE,EAAE,4CAA4C;QAChD,WAAW,EAAE,sCAAsC;QACnD,cAAc,EAAE,0BAA0B;KAC3C;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,yCAAyC;QAC7C,WAAW,EAAE,kCAAkC;QAC/C,cAAc,EAAE,oBAAoB;KACrC;IACD,qBAAqB,EAAE;QACrB,EAAE,EAAE,uCAAuC;QAC3C,WAAW,EAAE,sCAAsC;QACnD,cAAc,EAAE,wIAAwI;KACzJ;IACD,oBAAoB,EAAE;QACpB,EAAE,EAAE,sCAAsC;QAC1C,WAAW,EAAE,8BAA8B;QAC3C,cAAc,EAAE,0BAA0B;KAC3C;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n confirmNowButton: {\n id: 'leanerDashboard.confirmEmailBanner',\n description: 'Button for sending confirm email and open modal',\n defaultMessage: 'Confirm Now',\n },\n confirmEmailTextReminderBanner: {\n id: 'leanerDashboard.confirmEmailTextReminderBanner',\n description: 'Text for reminding user to confirm email',\n defaultMessage: 'Remember to confirm your email so that you can keep learning! {confirmNowButton}.',\n },\n verifiedConfirmEmailButton: {\n id: 'leanerDashboard.verifiedConfirmEmailButton',\n description: 'Button for verified confirming email',\n defaultMessage: 'I\\'ve confirmed my email',\n },\n confirmEmailModalHeader: {\n id: 'leanerDashboard.confirmEmailModalHeader',\n description: 'title for confirming email modal',\n defaultMessage: 'Confirm your email',\n },\n confirmEmailModalBody: {\n id: 'leanerDashboard.confirmEmailModalBody',\n description: 'text hint for confirming email modal',\n defaultMessage: 'We\\'ve sent you an email to verify your account. Please check your inbox and click on the big red button to confirm and keep learning.',\n },\n confirmEmailImageAlt: {\n id: 'leanerDashboard.confirmEmailImageAlt',\n description: 'text alt confirm email image',\n defaultMessage: 'confirm email background',\n },\n});\n\nexport default messages;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function CoursesLink(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import messages from './messages';
|
|
4
|
+
export default function CoursesLink() {
|
|
5
|
+
const { formatMessage } = useIntl();
|
|
6
|
+
return (_jsx("div", { className: "d-flex", children: _jsx("span", { children: formatMessage(messages.course) }) }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=CoursesLink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoursesLink.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/CoursesLink.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,OAAO,UAAU,WAAW;IACjC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACrB,yBAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAQ,GACzC,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useIntl } from '@openedx/frontend-base';\n\nimport messages from './messages';\n\nexport default function CoursesLink() {\n const { formatMessage } = useIntl();\n\n return (\n <div className=\"d-flex\">\n <span>{formatMessage(messages.course)}</span>\n </div>\n );\n}\n\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { LinkMenuItem, useIntl } from '@openedx/frontend-base';
|
|
4
|
+
import GlobalDataContext from '../../data/contexts/GlobalDataContext';
|
|
5
|
+
import urls from '../../data/services/lms/urls';
|
|
6
|
+
import messages from './messages';
|
|
7
|
+
function DiscoverLink() {
|
|
8
|
+
const { formatMessage } = useIntl();
|
|
9
|
+
return (_jsx("div", { className: "d-flex", children: _jsx("span", { children: formatMessage(messages.discoverNew) }) }));
|
|
10
|
+
}
|
|
11
|
+
export default function DiscoverLinkMenuItem({ variant = 'hyperlink' }) {
|
|
12
|
+
const { platformSettings } = useContext(GlobalDataContext);
|
|
13
|
+
const { courseSearchUrl } = platformSettings;
|
|
14
|
+
const url = urls.baseAppUrl(courseSearchUrl);
|
|
15
|
+
return (_jsx(LinkMenuItem, { label: _jsx(DiscoverLink, {}), url: url, variant: variant }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=DiscoverLinkMenuItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscoverLinkMenuItem.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/DiscoverLinkMenuItem.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,iBAAiB,MAAM,uCAAuC,CAAC;AACtE,OAAO,IAAI,MAAM,8BAA8B,CAAC;AAChD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,SAAS,YAAY;IACnB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACrB,yBAAO,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAQ,GAC9C,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE;IACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAE7C,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAC,YAAY,KAAG,EACvB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { LinkMenuItem, useIntl } from '@openedx/frontend-base';\n\nimport GlobalDataContext from '../../data/contexts/GlobalDataContext';\nimport urls from '../../data/services/lms/urls';\nimport messages from './messages';\n\nfunction DiscoverLink() {\n const { formatMessage } = useIntl();\n\n return (\n <div className=\"d-flex\">\n <span>{formatMessage(messages.discoverNew)}</span>\n </div>\n );\n}\n\nexport default function DiscoverLinkMenuItem({ variant = 'hyperlink' }) {\n const { platformSettings } = useContext(GlobalDataContext);\n const { courseSearchUrl } = platformSettings;\n const url = urls.baseAppUrl(courseSearchUrl);\n\n return (\n <LinkMenuItem\n label={<DiscoverLink />}\n url={url}\n variant={variant}\n />\n );\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function useMasqueradeBarData({ authenticatedUser, }: {
|
|
2
|
+
authenticatedUser: any;
|
|
3
|
+
}): {
|
|
4
|
+
canMasquerade: any;
|
|
5
|
+
isMasquerading: boolean;
|
|
6
|
+
isMasqueradingFailed: boolean;
|
|
7
|
+
isMasqueradingPending: boolean;
|
|
8
|
+
masqueradeErrorMessage: {
|
|
9
|
+
id: string;
|
|
10
|
+
defaultMessage: string;
|
|
11
|
+
description: string;
|
|
12
|
+
} | null;
|
|
13
|
+
masqueradeInput: string;
|
|
14
|
+
handleMasqueradeSubmit: (user: any) => (e: any) => void;
|
|
15
|
+
handleClearMasquerade: () => void;
|
|
16
|
+
handleMasqueradeInputChange: (e: any) => void;
|
|
17
|
+
formatMessage: {
|
|
18
|
+
(this: void, descriptor: import("react-intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>, opts?: import("intl-messageformat").Options): string;
|
|
19
|
+
(this: void, descriptor: import("react-intl").MessageDescriptor, values?: Record<string, React.ReactNode | import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, React.ReactNode>>, opts?: import("intl-messageformat").Options): Array<React.ReactNode>;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export default useMasqueradeBarData;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useState, useMemo } from 'react';
|
|
2
|
+
import { useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import { useMasquerade } from '../../../data/context';
|
|
4
|
+
import { useInitializeLearnerHome } from '../../../data/hooks';
|
|
5
|
+
import messages from './messages';
|
|
6
|
+
export const useMasqueradeBarData = ({ authenticatedUser, }) => {
|
|
7
|
+
const { formatMessage } = useIntl();
|
|
8
|
+
const [masqueradeInput, setMasqueradeInput] = useState('');
|
|
9
|
+
const { masqueradeUser, setMasqueradeUser } = useMasquerade();
|
|
10
|
+
const { isError, error, isPending, } = useInitializeLearnerHome();
|
|
11
|
+
const handleMasqueradeInputChange = (e) => setMasqueradeInput(e.target.value);
|
|
12
|
+
const handleClearMasquerade = () => {
|
|
13
|
+
setMasqueradeUser(undefined);
|
|
14
|
+
setMasqueradeInput('');
|
|
15
|
+
};
|
|
16
|
+
const handleMasqueradeSubmit = (user) => (e) => {
|
|
17
|
+
setMasqueradeUser(user);
|
|
18
|
+
e.preventDefault();
|
|
19
|
+
};
|
|
20
|
+
const isMasqueradingFailed = !!masqueradeUser && !!masqueradeInput && isError;
|
|
21
|
+
const isMasqueradingPending = !!masqueradeUser && isPending;
|
|
22
|
+
const isMasquerading = !!masqueradeUser && !isError && !isPending;
|
|
23
|
+
const masqueradeErrorMessage = useMemo(() => {
|
|
24
|
+
var _a;
|
|
25
|
+
if (masqueradeUser && error) {
|
|
26
|
+
return (((_a = error.customAttributes) === null || _a === void 0 ? void 0 : _a.httpErrorStatus) === 404 ? messages.NoStudentFound : messages.UnknownError);
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}, [error, masqueradeUser]);
|
|
30
|
+
return {
|
|
31
|
+
canMasquerade: authenticatedUser === null || authenticatedUser === void 0 ? void 0 : authenticatedUser.administrator,
|
|
32
|
+
isMasquerading,
|
|
33
|
+
isMasqueradingFailed,
|
|
34
|
+
isMasqueradingPending,
|
|
35
|
+
masqueradeErrorMessage,
|
|
36
|
+
masqueradeInput,
|
|
37
|
+
handleMasqueradeSubmit,
|
|
38
|
+
handleClearMasquerade,
|
|
39
|
+
handleMasqueradeInputChange,
|
|
40
|
+
formatMessage,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export default useMasqueradeBarData;
|
|
44
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,iBAAiB,GAClB,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,aAAa,EAAE,CAAC;IAC9D,MAAM,EACJ,OAAO,EAAE,KAAK,EAAE,SAAS,GAC1B,GAAG,wBAAwB,EAAE,CAAC;IAE/B,MAAM,2BAA2B,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7C,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC;IAC9E,MAAM,qBAAqB,GAAG,CAAC,CAAC,cAAc,IAAI,SAAS,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC;IAClE,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;;QAC1C,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,eAAe,MAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,aAAa,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa;QAC/C,cAAc;QACd,oBAAoB;QACpB,qBAAqB;QACrB,sBAAsB;QACtB,eAAe;QACf,sBAAsB;QACtB,qBAAqB;QACrB,2BAA2B;QAC3B,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC","sourcesContent":["import { useState, useMemo } from 'react';\nimport { useIntl } from '@openedx/frontend-base';\n\nimport { useMasquerade } from '../../../data/context';\nimport { useInitializeLearnerHome } from '../../../data/hooks';\n\nimport messages from './messages';\n\nexport const useMasqueradeBarData = ({\n authenticatedUser,\n}) => {\n const { formatMessage } = useIntl();\n const [masqueradeInput, setMasqueradeInput] = useState('');\n const { masqueradeUser, setMasqueradeUser } = useMasquerade();\n const {\n isError, error, isPending,\n } = useInitializeLearnerHome();\n\n const handleMasqueradeInputChange = (e) => setMasqueradeInput(e.target.value);\n const handleClearMasquerade = () => {\n setMasqueradeUser(undefined);\n setMasqueradeInput('');\n };\n const handleMasqueradeSubmit = (user) => (e) => {\n setMasqueradeUser(user);\n e.preventDefault();\n };\n\n const isMasqueradingFailed = !!masqueradeUser && !!masqueradeInput && isError;\n const isMasqueradingPending = !!masqueradeUser && isPending;\n const isMasquerading = !!masqueradeUser && !isError && !isPending;\n const masqueradeErrorMessage = useMemo(() => {\n if (masqueradeUser && error) {\n return (error.customAttributes?.httpErrorStatus === 404 ? messages.NoStudentFound : messages.UnknownError);\n }\n return null;\n }, [error, masqueradeUser]);\n\n return {\n canMasquerade: authenticatedUser?.administrator,\n isMasquerading,\n isMasqueradingFailed,\n isMasqueradingPending,\n masqueradeErrorMessage,\n masqueradeInput,\n handleMasqueradeSubmit,\n handleClearMasquerade,\n handleMasqueradeInputChange,\n formatMessage,\n };\n};\n\nexport default useMasqueradeBarData;\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { SiteContext } from '@openedx/frontend-base';
|
|
4
|
+
import { Chip, Container, Form, FormControl, FormControlFeedback, FormLabel, FormGroup, StatefulButton, Icon, } from '@openedx/paragon';
|
|
5
|
+
import { Close, PersonSearch } from '@openedx/paragon/icons';
|
|
6
|
+
import messages from './messages';
|
|
7
|
+
import { useMasqueradeBarData } from './hooks';
|
|
8
|
+
import './index.scss';
|
|
9
|
+
export const MasqueradeBar = () => {
|
|
10
|
+
const { authenticatedUser } = useContext(SiteContext);
|
|
11
|
+
const { canMasquerade, isMasquerading, isMasqueradingFailed, isMasqueradingPending, masqueradeInput, masqueradeErrorMessage, handleMasqueradeInputChange, handleClearMasquerade, handleMasqueradeSubmit, formatMessage, } = useMasqueradeBarData({ authenticatedUser });
|
|
12
|
+
if (!canMasquerade) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return (_jsx("div", { className: "w-100 shadow-sm", children: _jsx(Container, { fluid: true, size: "xl", children: _jsx(Form, { className: "masquerade-bar w-100", children: isMasquerading ? (_jsxs(_Fragment, { children: [_jsxs(FormLabel, { inline: "true", className: "masquerade-form-label", children: [_jsx(Icon, { src: PersonSearch }), formatMessage(messages.ViewingAs)] }), _jsx(Chip, { className: "masquerade-chip", iconAfter: Close, onClick: handleClearMasquerade, children: masqueradeInput })] })) : (_jsxs(_Fragment, { children: [_jsxs(FormLabel, { inline: "true", id: "masquerade-form-label", className: "masquerade-form-label", children: [_jsx(Icon, { src: PersonSearch }), formatMessage(messages.ViewAs)] }), _jsxs(FormGroup, { isInvalid: isMasqueradingFailed, className: "masquerade-form-input", children: [_jsx(FormControl, { value: masqueradeInput, onChange: handleMasqueradeInputChange, floatingLabel: formatMessage(messages.StudentNameInput), "aria-labelledby": "masquerade-form-label" }), isMasqueradingFailed && (_jsx(FormControlFeedback, { type: "invalid", hasIcon: false, children: formatMessage(masqueradeErrorMessage) }))] }), _jsx(StatefulButton, { disabled: !(masqueradeInput === null || masqueradeInput === void 0 ? void 0 : masqueradeInput.length), variant: "brand", onClick: handleMasqueradeSubmit(masqueradeInput), labels: {
|
|
16
|
+
default: formatMessage(messages.SubmitButton),
|
|
17
|
+
}, className: "mr-3", state: isMasqueradingPending ? 'pending' : 'default', type: "submit" })] })) }) }) }));
|
|
18
|
+
};
|
|
19
|
+
export default MasqueradeBar;
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardHeader/MasqueradeBar/index.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EACL,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,cAAc,EACd,IAAI,GACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,iBAAiB,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEtD,MAAM,EACJ,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,GACd,GAAG,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAEhD,IAAI,CAAC,aAAa,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAC,iBAAiB,YAC9B,KAAC,SAAS,IAAC,KAAK,QAAC,IAAI,EAAC,IAAI,YACxB,KAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,YACrC,cAAc,CAAC,CAAC,CAAC,CAChB,8BACE,MAAC,SAAS,IAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,uBAAuB,aACxD,KAAC,IAAI,IAAC,GAAG,EAAE,YAAY,GAAI,EAC1B,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IACxB,EACZ,KAAC,IAAI,IACH,SAAS,EAAC,iBAAiB,EAC3B,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,qBAAqB,YAE7B,eAAe,GACX,IACN,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,MAAC,SAAS,IAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAC,uBAAuB,EAAC,SAAS,EAAC,uBAAuB,aACnF,KAAC,IAAI,IAAC,GAAG,EAAE,YAAY,GAAI,EAC1B,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IACrB,EACZ,MAAC,SAAS,IAAC,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAC,uBAAuB,aAC3E,KAAC,WAAW,IACV,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,2BAA2B,EACrC,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,qBACvC,uBAAuB,GACvC,EACD,oBAAoB,IAAI,CACvB,KAAC,mBAAmB,IAAC,IAAI,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,YAC/C,aAAa,CAAC,sBAAsB,CAAC,GAClB,CACvB,IACS,EACZ,KAAC,cAAc,IACb,QAAQ,EAAE,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAA,EAClC,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,sBAAsB,CAAC,eAAe,CAAC,EAChD,MAAM,EAAE;gCACN,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;6BAC9C,EACD,SAAS,EAAC,MAAM,EAChB,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACpD,IAAI,EAAC,QAAQ,GACb,IACD,CACJ,GACI,GACK,GACR,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { useContext } from 'react';\nimport { SiteContext } from '@openedx/frontend-base';\n\nimport {\n Chip,\n Container,\n Form,\n FormControl,\n FormControlFeedback,\n FormLabel,\n FormGroup,\n StatefulButton,\n Icon,\n} from '@openedx/paragon';\nimport { Close, PersonSearch } from '@openedx/paragon/icons';\n\nimport messages from './messages';\nimport { useMasqueradeBarData } from './hooks';\nimport './index.scss';\n\nexport const MasqueradeBar = () => {\n const { authenticatedUser } = useContext(SiteContext);\n\n const {\n canMasquerade,\n isMasquerading,\n isMasqueradingFailed,\n isMasqueradingPending,\n masqueradeInput,\n masqueradeErrorMessage,\n handleMasqueradeInputChange,\n handleClearMasquerade,\n handleMasqueradeSubmit,\n formatMessage,\n } = useMasqueradeBarData({ authenticatedUser });\n\n if (!canMasquerade) { return null; }\n\n return (\n <div className=\"w-100 shadow-sm\">\n <Container fluid size=\"xl\">\n <Form className=\"masquerade-bar w-100\">\n {isMasquerading ? (\n <>\n <FormLabel inline=\"true\" className=\"masquerade-form-label\">\n <Icon src={PersonSearch} />\n {formatMessage(messages.ViewingAs)}\n </FormLabel>\n <Chip\n className=\"masquerade-chip\"\n iconAfter={Close}\n onClick={handleClearMasquerade}\n >\n {masqueradeInput}\n </Chip>\n </>\n ) : (\n <>\n <FormLabel inline=\"true\" id=\"masquerade-form-label\" className=\"masquerade-form-label\">\n <Icon src={PersonSearch} />\n {formatMessage(messages.ViewAs)}\n </FormLabel>\n <FormGroup isInvalid={isMasqueradingFailed} className=\"masquerade-form-input\">\n <FormControl\n value={masqueradeInput}\n onChange={handleMasqueradeInputChange}\n floatingLabel={formatMessage(messages.StudentNameInput)}\n aria-labelledby=\"masquerade-form-label\"\n />\n {isMasqueradingFailed && (\n <FormControlFeedback type=\"invalid\" hasIcon={false}>\n {formatMessage(masqueradeErrorMessage)}\n </FormControlFeedback>\n )}\n </FormGroup>\n <StatefulButton\n disabled={!masqueradeInput?.length}\n variant=\"brand\"\n onClick={handleMasqueradeSubmit(masqueradeInput)}\n labels={{\n default: formatMessage(messages.SubmitButton),\n }}\n className=\"mr-3\"\n state={isMasqueradingPending ? 'pending' : 'default'}\n type=\"submit\"\n />\n </>\n )}\n </Form>\n </Container>\n </div>\n );\n};\n\nexport default MasqueradeBar;\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@use "@openedx/paragon/styles/css/core/custom-media-breakpoints.css";
|
|
2
|
+
|
|
3
|
+
.masquerade-bar {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: flex-start;
|
|
6
|
+
padding: var(--pgn-spacing-spacer-3) 0;
|
|
7
|
+
margin-bottom: var(--pgn-spacing-spacer-2);
|
|
8
|
+
|
|
9
|
+
.masquerade-form-label {
|
|
10
|
+
padding: var(--pgn-spacing-spacer-2) var(--pgn-spacing-spacer-3) var(--pgn-spacing-spacer-2) 0;
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
margin-bottom: 0;
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
|
|
16
|
+
&>.pgn__icon {
|
|
17
|
+
margin-right: var(--pgn-spacing-spacer-3);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.masquerade-form-input {
|
|
22
|
+
margin-bottom: 0;
|
|
23
|
+
flex-grow: 1;
|
|
24
|
+
max-width: var(--pgn-size-breakpoint-md);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.masquerade-chip {
|
|
28
|
+
padding: var(--pgn-spacing-spacer-2) var(--pgn-spacing-spacer-3);
|
|
29
|
+
font-size: var(--pgn-typography-font-size-base);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@media (--pgn-size-breakpoint-max-width-md) {
|
|
34
|
+
.masquerade-bar {
|
|
35
|
+
margin: auto;
|
|
36
|
+
padding: var(--pgn-spacing-spacer-3) 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export default messages;
|
|
2
|
+
declare namespace messages {
|
|
3
|
+
namespace ViewAs {
|
|
4
|
+
let id: string;
|
|
5
|
+
let defaultMessage: string;
|
|
6
|
+
let description: string;
|
|
7
|
+
}
|
|
8
|
+
namespace ViewingAs {
|
|
9
|
+
let id_1: string;
|
|
10
|
+
export { id_1 as id };
|
|
11
|
+
let defaultMessage_1: string;
|
|
12
|
+
export { defaultMessage_1 as defaultMessage };
|
|
13
|
+
let description_1: string;
|
|
14
|
+
export { description_1 as description };
|
|
15
|
+
}
|
|
16
|
+
namespace SubmitButton {
|
|
17
|
+
let id_2: string;
|
|
18
|
+
export { id_2 as id };
|
|
19
|
+
let defaultMessage_2: string;
|
|
20
|
+
export { defaultMessage_2 as defaultMessage };
|
|
21
|
+
let description_2: string;
|
|
22
|
+
export { description_2 as description };
|
|
23
|
+
}
|
|
24
|
+
namespace StudentNameInput {
|
|
25
|
+
let id_3: string;
|
|
26
|
+
export { id_3 as id };
|
|
27
|
+
let defaultMessage_3: string;
|
|
28
|
+
export { defaultMessage_3 as defaultMessage };
|
|
29
|
+
let description_3: string;
|
|
30
|
+
export { description_3 as description };
|
|
31
|
+
}
|
|
32
|
+
namespace NoStudentFound {
|
|
33
|
+
let id_4: string;
|
|
34
|
+
export { id_4 as id };
|
|
35
|
+
let defaultMessage_4: string;
|
|
36
|
+
export { defaultMessage_4 as defaultMessage };
|
|
37
|
+
let description_4: string;
|
|
38
|
+
export { description_4 as description };
|
|
39
|
+
}
|
|
40
|
+
namespace UnknownError {
|
|
41
|
+
let id_5: string;
|
|
42
|
+
export { id_5 as id };
|
|
43
|
+
let defaultMessage_5: string;
|
|
44
|
+
export { defaultMessage_5 as defaultMessage };
|
|
45
|
+
let description_5: string;
|
|
46
|
+
export { description_5 as description };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { defineMessages } from '@openedx/frontend-base';
|
|
2
|
+
const messages = defineMessages({
|
|
3
|
+
ViewAs: {
|
|
4
|
+
id: 'MasqueradeBar.ViewAs',
|
|
5
|
+
defaultMessage: 'View as: ',
|
|
6
|
+
description: 'Label for the View as',
|
|
7
|
+
},
|
|
8
|
+
ViewingAs: {
|
|
9
|
+
id: 'MasqueradeBar.ViewingAs',
|
|
10
|
+
defaultMessage: 'Viewing as: ',
|
|
11
|
+
description: 'Label for the Viewing as',
|
|
12
|
+
},
|
|
13
|
+
SubmitButton: {
|
|
14
|
+
id: 'MasqueradeBar.SubmitButton',
|
|
15
|
+
defaultMessage: 'Submit',
|
|
16
|
+
description: 'Label for the Submit button',
|
|
17
|
+
},
|
|
18
|
+
StudentNameInput: {
|
|
19
|
+
id: 'MasqueradeBar.StudentNameInput',
|
|
20
|
+
defaultMessage: 'Username or email',
|
|
21
|
+
description: 'Label for the Student Name or email input',
|
|
22
|
+
},
|
|
23
|
+
NoStudentFound: {
|
|
24
|
+
id: 'MasqueradeBar.NoStudentFound',
|
|
25
|
+
defaultMessage: 'No student with this username or email could be found',
|
|
26
|
+
description: 'Error message when no student is found',
|
|
27
|
+
},
|
|
28
|
+
UnknownError: {
|
|
29
|
+
id: 'MasqueradeBar.UnknownError',
|
|
30
|
+
defaultMessage: 'An unknown error occurred',
|
|
31
|
+
description: 'Error message when an unknown error occurs',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
export default messages;
|
|
35
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../../src/widgets/LearnerDashboardHeader/MasqueradeBar/messages.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,MAAM,EAAE;QACN,EAAE,EAAE,sBAAsB;QAC1B,cAAc,EAAE,WAAW;QAC3B,WAAW,EAAE,uBAAuB;KACrC;IACD,SAAS,EAAE;QACT,EAAE,EAAE,yBAAyB;QAC7B,cAAc,EAAE,cAAc;QAC9B,WAAW,EAAE,0BAA0B;KACxC;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,4BAA4B;QAChC,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,6BAA6B;KAC3C;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,gCAAgC;QACpC,cAAc,EAAE,mBAAmB;QACnC,WAAW,EAAE,2CAA2C;KACzD;IACD,cAAc,EAAE;QACd,EAAE,EAAE,8BAA8B;QAClC,cAAc,EAAE,uDAAuD;QACvE,WAAW,EAAE,wCAAwC;KACtD;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,4BAA4B;QAChC,cAAc,EAAE,2BAA2B;QAC3C,WAAW,EAAE,4CAA4C;KAC1D;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst messages = defineMessages({\n ViewAs: {\n id: 'MasqueradeBar.ViewAs',\n defaultMessage: 'View as: ',\n description: 'Label for the View as',\n },\n ViewingAs: {\n id: 'MasqueradeBar.ViewingAs',\n defaultMessage: 'Viewing as: ',\n description: 'Label for the Viewing as',\n },\n SubmitButton: {\n id: 'MasqueradeBar.SubmitButton',\n defaultMessage: 'Submit',\n description: 'Label for the Submit button',\n },\n StudentNameInput: {\n id: 'MasqueradeBar.StudentNameInput',\n defaultMessage: 'Username or email',\n description: 'Label for the Student Name or email input',\n },\n NoStudentFound: {\n id: 'MasqueradeBar.NoStudentFound',\n defaultMessage: 'No student with this username or email could be found',\n description: 'Error message when no student is found',\n },\n UnknownError: {\n id: 'MasqueradeBar.UnknownError',\n defaultMessage: 'An unknown error occurred',\n description: 'Error message when an unknown error occurs',\n },\n});\n\nexport default messages;\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { LinkMenuItem, getAppConfig, useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import { appId } from '../../constants';
|
|
4
|
+
import messages from './messages';
|
|
5
|
+
function OrderHistoryLink() {
|
|
6
|
+
const { formatMessage } = useIntl();
|
|
7
|
+
return (_jsx("div", { className: "d-flex", children: _jsx("span", { children: formatMessage(messages.orderHistory) }) }));
|
|
8
|
+
}
|
|
9
|
+
export default function OrderHistoryLinkMenuItem({ variant = 'hyperlink' }) {
|
|
10
|
+
const { ORDER_HISTORY_URL: url } = getAppConfig(appId);
|
|
11
|
+
if (!url)
|
|
12
|
+
return null;
|
|
13
|
+
return (_jsx(LinkMenuItem, { label: _jsx(OrderHistoryLink, {}), url: url, variant: variant }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=OrderHistoryLinkMenuItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderHistoryLinkMenuItem.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/OrderHistoryLinkMenuItem.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,SAAS,gBAAgB;IACvB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACrB,yBAAO,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAQ,GAC/C,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE;IACxE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEvD,IAAI,CAAC,GAAG;QACN,OAAO,IAAI,CAAC;IAEd,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAC,gBAAgB,KAAG,EAC3B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { LinkMenuItem, getAppConfig, useIntl } from '@openedx/frontend-base';\n\nimport { appId } from '../../constants';\nimport messages from './messages';\n\nfunction OrderHistoryLink() {\n const { formatMessage } = useIntl();\n\n return (\n <div className=\"d-flex\">\n <span>{formatMessage(messages.orderHistory)}</span>\n </div>\n );\n}\n\nexport default function OrderHistoryLinkMenuItem({ variant = 'hyperlink' }) {\n const { ORDER_HISTORY_URL: url } = getAppConfig(appId);\n\n if (!url)\n return null;\n\n return (\n <LinkMenuItem\n label={<OrderHistoryLink />}\n url={url}\n variant={variant}\n />\n );\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { LinkMenuItem, useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import urls from '../../data/services/lms/urls';
|
|
4
|
+
import messages from './messages';
|
|
5
|
+
function ProgramsLink() {
|
|
6
|
+
const { formatMessage } = useIntl();
|
|
7
|
+
return (_jsx("div", { className: "d-flex", children: _jsx("span", { children: formatMessage(messages.program) }) }));
|
|
8
|
+
}
|
|
9
|
+
export default function ProgramsLinkMenuItem({ variant = 'hyperlink' }) {
|
|
10
|
+
const url = urls.programsUrl();
|
|
11
|
+
return (_jsx(LinkMenuItem, { label: _jsx(ProgramsLink, {}), url: url, variant: variant }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ProgramsLinkMenuItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgramsLinkMenuItem.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/ProgramsLinkMenuItem.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,IAAI,MAAM,8BAA8B,CAAC;AAChD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,SAAS,YAAY;IACnB,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAEpC,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACrB,yBAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAQ,GAC1C,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAE/B,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,KAAC,YAAY,KAAG,EACvB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { LinkMenuItem, useIntl } from '@openedx/frontend-base';\n\nimport urls from '../../data/services/lms/urls';\nimport messages from './messages';\n\nfunction ProgramsLink() {\n const { formatMessage } = useIntl();\n\n return (\n <div className=\"d-flex\">\n <span>{formatMessage(messages.program)}</span>\n </div>\n );\n}\n\nexport default function ProgramsLinkMenuItem({ variant = 'hyperlink' }) {\n const url = urls.programsUrl();\n\n return (\n <LinkMenuItem\n label={<ProgramsLink />}\n url={url}\n variant={variant}\n />\n );\n}\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { LinkMenuItem, WidgetOperationTypes, getAppConfig, helpButtonSlotOperation } from '@openedx/frontend-base';
|
|
3
|
+
import { appId, dashboardRole } from '../../constants';
|
|
4
|
+
import ConfirmEmailBanner from './ConfirmEmailBanner';
|
|
5
|
+
import MasqueradeBar from './MasqueradeBar';
|
|
6
|
+
import CoursesLink from './CoursesLink';
|
|
7
|
+
import DiscoverLinkMenuItem from './DiscoverLinkMenuItem';
|
|
8
|
+
import ProgramsLinkMenuItem from './ProgramsLinkMenuItem';
|
|
9
|
+
import OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';
|
|
10
|
+
const app = {
|
|
11
|
+
appId: 'org.openedx.frontend.app.learnerDashboard.header',
|
|
12
|
+
slots: [
|
|
13
|
+
{
|
|
14
|
+
slotId: 'org.openedx.frontend.slot.header.main.v1',
|
|
15
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.headerConfirmEmail.v1',
|
|
16
|
+
op: WidgetOperationTypes.PREPEND,
|
|
17
|
+
component: ConfirmEmailBanner,
|
|
18
|
+
condition: {
|
|
19
|
+
active: [dashboardRole]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',
|
|
24
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkCourses.v1',
|
|
25
|
+
op: WidgetOperationTypes.APPEND,
|
|
26
|
+
element: (_jsx(LinkMenuItem, { label: _jsx(CoursesLink, {}), role: dashboardRole, variant: "navLink" })),
|
|
27
|
+
condition: {
|
|
28
|
+
active: [dashboardRole]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',
|
|
33
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',
|
|
34
|
+
op: WidgetOperationTypes.APPEND,
|
|
35
|
+
element: (_jsx(ProgramsLinkMenuItem, { variant: "navLink" })),
|
|
36
|
+
condition: {
|
|
37
|
+
active: [dashboardRole],
|
|
38
|
+
callback: () => getAppConfig(appId).ENABLE_PROGRAMS === true,
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',
|
|
43
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkDiscover.v1',
|
|
44
|
+
op: WidgetOperationTypes.APPEND,
|
|
45
|
+
element: (_jsx(DiscoverLinkMenuItem, { variant: "navLink" })),
|
|
46
|
+
condition: {
|
|
47
|
+
active: [dashboardRole]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
helpButtonSlotOperation({ appId, role: dashboardRole }),
|
|
51
|
+
{
|
|
52
|
+
slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
|
|
53
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',
|
|
54
|
+
op: WidgetOperationTypes.INSERT_BEFORE,
|
|
55
|
+
relatedId: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',
|
|
56
|
+
element: (_jsx(OrderHistoryLinkMenuItem, { variant: "navLink" })),
|
|
57
|
+
condition: {
|
|
58
|
+
active: [dashboardRole],
|
|
59
|
+
callback: () => getAppConfig(appId).ORDER_HISTORY_URL ? true : false,
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
slotId: 'org.openedx.frontend.slot.header.main.v1',
|
|
64
|
+
id: 'org.openedx.frontend.widget.learnerDashboard.headerMasqueradeBar.v1',
|
|
65
|
+
op: WidgetOperationTypes.APPEND,
|
|
66
|
+
component: MasqueradeBar,
|
|
67
|
+
condition: {
|
|
68
|
+
active: [dashboardRole]
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
]
|
|
72
|
+
};
|
|
73
|
+
export default app;
|
|
74
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAO,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAExH,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,MAAM,GAAG,GAAQ;IACf,KAAK,EAAE,kDAAkD;IACzD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,0CAA0C;YAClD,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,aAAa,CAAC;aACxB;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,mEAAmE;YACvE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,YAAY,IACX,KAAK,EAAE,KAAC,WAAW,KAAG,EACtB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,aAAa,CAAC;aACxB;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,oBAAoB,IACnB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,aAAa,CAAC;gBACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK,IAAI;aAC7D;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,oBAAoB,IACnB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,aAAa,CAAC;aACxB;SACF;QACD,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACvD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,wEAAwE;YAC5E,EAAE,EAAE,oBAAoB,CAAC,aAAa;YACtC,SAAS,EAAE,sEAAsE;YACjF,OAAO,EAAE,CACP,KAAC,wBAAwB,IACvB,OAAO,EAAC,SAAS,GACjB,CACH;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,aAAa,CAAC;gBACvB,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;aACrE;SACF;QACD;YACE,MAAM,EAAE,0CAA0C;YAClD,EAAE,EAAE,qEAAqE;YACzE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,aAAa,CAAC;aACxB;SACF;KACF;CACF,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["import { App, LinkMenuItem, WidgetOperationTypes, getAppConfig, helpButtonSlotOperation } from '@openedx/frontend-base';\n\nimport { appId, dashboardRole } from '../../constants';\n\nimport ConfirmEmailBanner from './ConfirmEmailBanner';\nimport MasqueradeBar from './MasqueradeBar';\nimport CoursesLink from './CoursesLink';\nimport DiscoverLinkMenuItem from './DiscoverLinkMenuItem';\nimport ProgramsLinkMenuItem from './ProgramsLinkMenuItem';\nimport OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';\n\nconst app: App = {\n appId: 'org.openedx.frontend.app.learnerDashboard.header',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.header.main.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerConfirmEmail.v1',\n op: WidgetOperationTypes.PREPEND,\n component: ConfirmEmailBanner,\n condition: {\n active: [dashboardRole]\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkCourses.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <LinkMenuItem\n label={<CoursesLink />}\n role={dashboardRole}\n variant=\"navLink\"\n />\n ),\n condition: {\n active: [dashboardRole]\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <ProgramsLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n active: [dashboardRole],\n callback: () => getAppConfig(appId).ENABLE_PROGRAMS === true,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkDiscover.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <DiscoverLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n active: [dashboardRole]\n }\n },\n helpButtonSlotOperation({ appId, role: dashboardRole }),\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',\n op: WidgetOperationTypes.INSERT_BEFORE,\n relatedId: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',\n element: (\n <OrderHistoryLinkMenuItem\n variant=\"navLink\"\n />\n ),\n condition: {\n active: [dashboardRole],\n callback: () => getAppConfig(appId).ORDER_HISTORY_URL ? true : false,\n }\n },\n {\n slotId: 'org.openedx.frontend.slot.header.main.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerMasqueradeBar.v1',\n op: WidgetOperationTypes.APPEND,\n component: MasqueradeBar,\n condition: {\n active: [dashboardRole]\n }\n },\n ]\n};\n\nexport default app;\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const state: any;
|
|
2
|
+
export function useLearnerDashboardHeaderMenu({ courseSearchUrl, authenticatedUser, }: {
|
|
3
|
+
courseSearchUrl: any;
|
|
4
|
+
authenticatedUser: any;
|
|
5
|
+
}): any;
|
|
6
|
+
declare namespace _default {
|
|
7
|
+
export { useLearnerDashboardHeaderMenu };
|
|
8
|
+
}
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import { StrictDict } from '../../utils';
|
|
4
|
+
import getLearnerHeaderMenu from './LearnerDashboardMenu';
|
|
5
|
+
export const state = StrictDict({
|
|
6
|
+
isOpen: (val) => React.useState(val), // eslint-disable-line
|
|
7
|
+
});
|
|
8
|
+
export const useLearnerDashboardHeaderMenu = ({ courseSearchUrl, authenticatedUser, }) => {
|
|
9
|
+
const { formatMessage } = useIntl();
|
|
10
|
+
return getLearnerHeaderMenu(formatMessage, courseSearchUrl, authenticatedUser);
|
|
11
|
+
};
|
|
12
|
+
export default {
|
|
13
|
+
useLearnerDashboardHeaderMenu,
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/hooks.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC;IAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,sBAAsB;CAC7D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,eAAe,EAAE,iBAAiB,GACnC,EAAE,EAAE;IACH,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,OAAO,oBAAoB,CAAC,aAAa,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;AACjF,CAAC,CAAC;AAEF,eAAe;IACb,6BAA6B;CAC9B,CAAC","sourcesContent":["import React from 'react';\nimport { useIntl } from '@openedx/frontend-base';\nimport { StrictDict } from '@src/utils';\n\nimport getLearnerHeaderMenu from './LearnerDashboardMenu';\n\nexport const state = StrictDict({\n isOpen: (val) => React.useState(val), // eslint-disable-line\n});\n\nexport const useLearnerDashboardHeaderMenu = ({\n courseSearchUrl, authenticatedUser,\n}) => {\n const { formatMessage } = useIntl();\n return getLearnerHeaderMenu(formatMessage, courseSearchUrl, authenticatedUser);\n};\n\nexport default {\n useLearnerDashboardHeaderMenu,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as learnerDashboardHeaderApp } from './app';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,OAAO,CAAC","sourcesContent":["export { default as learnerDashboardHeaderApp } from './app';\n"]}
|