@openedx/frontend-app-learner-dashboard 1.0.0-alpha.6 → 1.0.0-alpha.7
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/dist/Main.js +2 -3
- package/dist/Main.js.map +1 -1
- package/dist/app.js +1 -0
- package/dist/app.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardActions/BeginCourseButton.js +14 -5
- package/dist/containers/CourseCard/components/CourseCardActions/BeginCourseButton.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardActions/ResumeButton.js +14 -5
- package/dist/containers/CourseCard/components/CourseCardActions/ResumeButton.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardActions/SelectSessionButton.js +3 -3
- package/dist/containers/CourseCard/components/CourseCardActions/SelectSessionButton.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardActions/ViewCourseButton.js +5 -3
- package/dist/containers/CourseCard/components/CourseCardActions/ViewCourseButton.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardActions/index.js +5 -4
- package/dist/containers/CourseCard/components/CourseCardActions/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CertificateBanner.js +26 -9
- package/dist/containers/CourseCard/components/CourseCardBanners/CertificateBanner.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CourseBanner.js +12 -4
- package/dist/containers/CourseCard/components/CourseCardBanners/CourseBanner.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/hooks.js +23 -4
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/hooks.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.js +11 -5
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/ApprovedContent.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/EligibleContent.js +5 -3
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/EligibleContent.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.js +3 -3
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/MustRequestContent.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.js +5 -5
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/PendingContent.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/RejectedContent.js +4 -3
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/RejectedContent.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/ProviderLink.js +3 -2
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/components/ProviderLink.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/hooks.js +13 -5
- package/dist/containers/CourseCard/components/CourseCardBanners/CreditBanner/views/hooks.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/EntitlementBanner.js +10 -6
- package/dist/containers/CourseCard/components/CourseCardBanners/EntitlementBanner.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/index.js +5 -4
- package/dist/containers/CourseCard/components/CourseCardBanners/RelatedProgramsBanner/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/index.d.ts +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/index.js +6 -2
- package/dist/containers/CourseCard/components/CourseCardBanners/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.d.ts +3 -3
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js +14 -12
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardImage.js +7 -6
- package/dist/containers/CourseCard/components/CourseCardImage.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardMenu/SocialShareMenu.js +14 -11
- package/dist/containers/CourseCard/components/CourseCardMenu/SocialShareMenu.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardMenu/hooks.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardMenu/hooks.js +26 -6
- package/dist/containers/CourseCard/components/CourseCardMenu/hooks.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardMenu/index.js +5 -5
- package/dist/containers/CourseCard/components/CourseCardMenu/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardTitle.js +6 -4
- package/dist/containers/CourseCard/components/CourseCardTitle.js.map +1 -1
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/hooks.js +4 -2
- package/dist/containers/CourseCard/components/RelatedProgramsBadge/hooks.js.map +1 -1
- package/dist/containers/CourseCard/components/hooks.d.ts +1 -1
- package/dist/containers/CourseCard/components/hooks.js +9 -7
- package/dist/containers/CourseCard/components/hooks.js.map +1 -1
- package/dist/containers/CourseCard/hooks.d.ts +0 -12
- package/dist/containers/CourseCard/hooks.js +0 -14
- package/dist/containers/CourseCard/hooks.js.map +1 -1
- package/dist/containers/CourseFilterControls/ActiveCourseFilters.d.ts +1 -11
- package/dist/containers/CourseFilterControls/ActiveCourseFilters.js +4 -9
- package/dist/containers/CourseFilterControls/ActiveCourseFilters.js.map +1 -1
- package/dist/containers/CourseFilterControls/CourseFilterControls.d.ts +1 -13
- package/dist/containers/CourseFilterControls/CourseFilterControls.js +26 -16
- package/dist/containers/CourseFilterControls/CourseFilterControls.js.map +1 -1
- package/dist/containers/CoursesPanel/CourseList/index.d.ts +0 -1
- package/dist/containers/CoursesPanel/CourseList/index.js +2 -3
- package/dist/containers/CoursesPanel/CourseList/index.js.map +1 -1
- package/dist/containers/CoursesPanel/NoCoursesView/index.js +4 -2
- package/dist/containers/CoursesPanel/NoCoursesView/index.js.map +1 -1
- package/dist/containers/CoursesPanel/index.js +27 -6
- package/dist/containers/CoursesPanel/index.js.map +1 -1
- package/dist/containers/Dashboard/hooks.js.map +1 -1
- package/dist/containers/Dashboard/index.js +7 -4
- package/dist/containers/Dashboard/index.js.map +1 -1
- package/dist/containers/EmailSettingsModal/hooks.js +8 -5
- package/dist/containers/EmailSettingsModal/hooks.js.map +1 -1
- package/dist/containers/RelatedProgramsModal/index.js +5 -3
- package/dist/containers/RelatedProgramsModal/index.js.map +1 -1
- package/dist/containers/SelectSessionModal/hooks.d.ts +1 -1
- package/dist/containers/SelectSessionModal/hooks.js +25 -15
- package/dist/containers/SelectSessionModal/hooks.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/components/ConfirmPane.d.ts +3 -1
- package/dist/containers/UnenrollConfirmModal/components/ConfirmPane.js +9 -3
- package/dist/containers/UnenrollConfirmModal/components/ConfirmPane.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/components/FinishedPane.d.ts +3 -3
- package/dist/containers/UnenrollConfirmModal/components/FinishedPane.js +9 -4
- package/dist/containers/UnenrollConfirmModal/components/FinishedPane.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/components/ReasonPane.d.ts +3 -2
- package/dist/containers/UnenrollConfirmModal/components/ReasonPane.js +3 -3
- package/dist/containers/UnenrollConfirmModal/components/ReasonPane.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/components/messages.d.ts +7 -7
- package/dist/containers/UnenrollConfirmModal/components/messages.js +12 -12
- package/dist/containers/UnenrollConfirmModal/components/messages.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/constants.d.ts +5 -0
- package/dist/containers/UnenrollConfirmModal/constants.js +7 -1
- package/dist/containers/UnenrollConfirmModal/constants.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/hooks/index.d.ts +1 -3
- package/dist/containers/UnenrollConfirmModal/hooks/index.js +18 -13
- package/dist/containers/UnenrollConfirmModal/hooks/index.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/hooks/reasons.d.ts +0 -2
- package/dist/containers/UnenrollConfirmModal/hooks/reasons.js +13 -15
- package/dist/containers/UnenrollConfirmModal/hooks/reasons.js.map +1 -1
- package/dist/containers/UnenrollConfirmModal/index.js +1 -1
- package/dist/containers/UnenrollConfirmModal/index.js.map +1 -1
- package/dist/data/constants/files.js +1 -1
- package/dist/data/constants/files.js.map +1 -1
- package/dist/data/constants/htmlKeys.js +1 -1
- package/dist/data/constants/htmlKeys.js.map +1 -1
- 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 +15 -11
- package/dist/data/contexts/GlobalDataContext.js.map +1 -1
- 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 +18 -27
- package/dist/data/services/lms/api.js +77 -38
- package/dist/data/services/lms/api.js.map +1 -1
- package/dist/data/services/lms/index.js +1 -1
- package/dist/data/services/lms/index.js.map +1 -1
- package/dist/data/services/lms/urls.d.ts +0 -1
- package/dist/data/services/lms/urls.js +6 -2
- package/dist/data/services/lms/urls.js.map +1 -1
- package/dist/data/services/segment/utils.d.ts +1 -1
- package/dist/hooks/index.d.ts +5 -4
- package/dist/hooks/index.js +8 -4
- package/dist/hooks/index.js.map +1 -1
- 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/providers.js +2 -2
- package/dist/providers.js.map +1 -1
- package/dist/routes.d.ts +2 -0
- package/dist/routes.js +3 -1
- package/dist/routes.js.map +1 -1
- package/dist/tracking/trackers/findCourses.d.ts +1 -1
- package/dist/tracking/trackers/socialShare.js +2 -2
- package/dist/tracking/trackers/socialShare.js.map +1 -1
- 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/widgets/LearnerDashboardHeader/ConfirmEmailBanner/hooks.d.ts +5 -6
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/hooks.js +9 -14
- package/dist/widgets/LearnerDashboardHeader/ConfirmEmailBanner/hooks.js.map +1 -1
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.d.ts +12 -14
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.js +24 -34
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/hooks.js.map +1 -1
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/index.js +1 -1
- package/dist/widgets/LearnerDashboardHeader/MasqueradeBar/index.js.map +1 -1
- package/dist/widgets/LearnerDashboardHeader/hooks.js +1 -1
- package/dist/widgets/LearnerDashboardHeader/hooks.js.map +1 -1
- package/dist/widgets/LookingForChallengeWidget/index.js +4 -2
- package/dist/widgets/LookingForChallengeWidget/index.js.map +1 -1
- package/dist/widgets/LookingForChallengeWidget/track.d.ts +1 -1
- package/package.json +19 -18
- package/dist/containers/CourseFilterControls/hooks.d.ts +0 -3
- package/dist/containers/CourseFilterControls/hooks.js +0 -48
- package/dist/containers/CourseFilterControls/hooks.js.map +0 -1
- package/dist/containers/CoursesPanel/hooks.d.ts +0 -15
- package/dist/containers/CoursesPanel/hooks.js +0 -45
- package/dist/containers/CoursesPanel/hooks.js.map +0 -1
- package/dist/containers/RelatedProgramsModal/hooks.d.ts +0 -7
- package/dist/containers/RelatedProgramsModal/hooks.js +0 -7
- package/dist/containers/RelatedProgramsModal/hooks.js.map +0 -1
- package/dist/data/contexts/MasqueradeUserContext.d.ts +0 -13
- package/dist/data/contexts/MasqueradeUserContext.js +0 -15
- package/dist/data/contexts/MasqueradeUserContext.js.map +0 -1
- package/dist/data/contexts/MasqueradeUserProvider.d.ts +0 -3
- package/dist/data/contexts/MasqueradeUserProvider.js +0 -24
- package/dist/data/contexts/MasqueradeUserProvider.js.map +0 -1
- package/dist/data/redux/app/index.d.ts +0 -2
- package/dist/data/redux/app/index.js +0 -3
- package/dist/data/redux/app/index.js.map +0 -1
- package/dist/data/redux/app/reducer.d.ts +0 -25
- package/dist/data/redux/app/reducer.js +0 -42
- package/dist/data/redux/app/reducer.js.map +0 -1
- package/dist/data/redux/app/selectors/appSelectors.d.ts +0 -17
- package/dist/data/redux/app/selectors/appSelectors.js +0 -13
- package/dist/data/redux/app/selectors/appSelectors.js.map +0 -1
- package/dist/data/redux/app/selectors/courseCard.d.ts +0 -3
- package/dist/data/redux/app/selectors/courseCard.js +0 -114
- package/dist/data/redux/app/selectors/courseCard.js.map +0 -1
- package/dist/data/redux/app/selectors/currentList.d.ts +0 -24
- package/dist/data/redux/app/selectors/currentList.js +0 -45
- package/dist/data/redux/app/selectors/currentList.js.map +0 -1
- package/dist/data/redux/app/selectors/index.d.ts +0 -2
- package/dist/data/redux/app/selectors/index.js +0 -8
- package/dist/data/redux/app/selectors/index.js.map +0 -1
- package/dist/data/redux/app/selectors/simpleSelectors.d.ts +0 -5
- package/dist/data/redux/app/selectors/simpleSelectors.js +0 -31
- package/dist/data/redux/app/selectors/simpleSelectors.js.map +0 -1
- package/dist/data/redux/hooks/app.d.ts +0 -42
- package/dist/data/redux/hooks/app.js +0 -99
- package/dist/data/redux/hooks/app.js.map +0 -1
- package/dist/data/redux/hooks/index.d.ts +0 -2
- package/dist/data/redux/hooks/index.js +0 -3
- package/dist/data/redux/hooks/index.js.map +0 -1
- package/dist/data/redux/hooks/requests.d.ts +0 -16
- package/dist/data/redux/hooks/requests.js +0 -38
- package/dist/data/redux/hooks/requests.js.map +0 -1
- package/dist/data/redux/index.d.ts +0 -6
- package/dist/data/redux/index.js +0 -26
- package/dist/data/redux/index.js.map +0 -1
- package/dist/data/redux/requests/index.d.ts +0 -2
- package/dist/data/redux/requests/index.js +0 -3
- package/dist/data/redux/requests/index.js.map +0 -1
- package/dist/data/redux/requests/reducer.d.ts +0 -36
- package/dist/data/redux/requests/reducer.js +0 -32
- package/dist/data/redux/requests/reducer.js.map +0 -1
- package/dist/data/redux/requests/selectors.d.ts +0 -21
- package/dist/data/redux/requests/selectors.js +0 -24
- package/dist/data/redux/requests/selectors.js.map +0 -1
- package/dist/data/services/lms/fakeData/courses.d.ts +0 -788
- package/dist/data/services/lms/fakeData/courses.js +0 -744
- package/dist/data/services/lms/fakeData/courses.js.map +0 -1
- package/dist/data/services/lms/fakeData/testUtils.d.ts +0 -18
- package/dist/data/services/lms/fakeData/testUtils.js +0 -31
- package/dist/data/services/lms/fakeData/testUtils.js.map +0 -1
- package/dist/data/store.d.ts +0 -12
- package/dist/data/store.js +0 -14
- package/dist/data/store.js.map +0 -1
- package/dist/data/utils.d.ts +0 -10
- package/dist/data/utils.js +0 -14
- package/dist/data/utils.js.map +0 -1
- package/dist/hooks/api.d.ts +0 -9
- package/dist/hooks/api.js +0 -96
- package/dist/hooks/api.js.map +0 -1
- package/dist/slots/CourseBannerSlot/images/course_banner_slot_default.png +0 -0
- package/dist/slots/CourseBannerSlot/images/custom_course_banner.png +0 -0
- package/dist/slots/CourseCardActionSlot/images/post_course_card_action.png +0 -0
- package/dist/slots/CourseListSlot/images/course_list_slot.png +0 -0
- package/dist/slots/CourseListSlot/images/readme_custom_course_list.png +0 -0
- package/dist/slots/DashboardModalSlot/images/dashboard_modal_slot.png +0 -0
- package/dist/slots/NoCoursesViewSlot/images/no_course_view_slot.png +0 -0
- package/dist/slots/NoCoursesViewSlot/images/readme_custom_no_courses.png +0 -0
- package/dist/slots/WidgetSidebarSlot/images/readme_custom_sidebar.png +0 -0
- package/dist/slots/WidgetSidebarSlot/images/widget_sidebar_slot.png +0 -0
- package/dist/test/inspector.d.ts +0 -28
- package/dist/test/inspector.js +0 -38
- package/dist/test/inspector.js.map +0 -1
- package/dist/test/messages.d.ts +0 -8
- package/dist/test/messages.js +0 -18
- package/dist/test/messages.js.map +0 -1
- package/dist/test/utils.d.ts +0 -2
- package/dist/test/utils.js +0 -3
- package/dist/test/utils.js.map +0 -1
|
@@ -1,41 +1,80 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { getAuthenticatedHttpClient } from '@openedx/frontend-base';
|
|
11
|
+
import { apiKeys, enableEmailsAction, unenrollmentAction } from '../../../data/services/lms/constants';
|
|
12
|
+
import urls from '../../../data/services/lms/urls';
|
|
13
|
+
import { stringifyUrl } from '../../../data/services/lms/utils';
|
|
1
14
|
import eventNames from '../../../tracking/constants';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
15
|
+
const initializeList = (user) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const { data } = yield getAuthenticatedHttpClient().get(stringifyUrl(urls.getInitApiUrl(), { [apiKeys.user]: user }));
|
|
17
|
+
return data;
|
|
18
|
+
});
|
|
19
|
+
const unenrollFromCourse = (_a) => __awaiter(void 0, [_a], void 0, function* ({ courseId }) {
|
|
20
|
+
const url = urls.courseUnenroll();
|
|
21
|
+
const formData = new FormData();
|
|
22
|
+
formData.append(apiKeys.courseId, courseId);
|
|
23
|
+
Object.entries(unenrollmentAction).forEach(([key, value]) => {
|
|
24
|
+
formData.append(key, value);
|
|
25
|
+
});
|
|
26
|
+
const response = yield getAuthenticatedHttpClient().post(url, formData);
|
|
27
|
+
return response;
|
|
28
|
+
});
|
|
29
|
+
const updateEntitlementEnrollment = (_a) => __awaiter(void 0, [_a], void 0, function* ({ uuid, courseId }) {
|
|
30
|
+
const url = urls.entitlementEnrollment(uuid);
|
|
31
|
+
const content = { [apiKeys.courseRunId]: courseId };
|
|
32
|
+
const response = yield getAuthenticatedHttpClient().post(url, content);
|
|
33
|
+
return response;
|
|
34
|
+
});
|
|
35
|
+
const deleteEntitlementEnrollment = (_a) => __awaiter(void 0, [_a], void 0, function* ({ uuid, isRefundable }) {
|
|
36
|
+
const url = stringifyUrl(urls.entitlementEnrollment(uuid), { [apiKeys.isRefund]: isRefundable });
|
|
37
|
+
const response = yield getAuthenticatedHttpClient().delete(url);
|
|
38
|
+
return response;
|
|
39
|
+
});
|
|
40
|
+
const updateEmailSettings = (_a) => __awaiter(void 0, [_a], void 0, function* ({ courseId, enable }) {
|
|
41
|
+
const url = urls.updateEmailSettings();
|
|
42
|
+
const content = Object.assign({ [apiKeys.courseId]: courseId }, (enable && enableEmailsAction));
|
|
43
|
+
const response = yield getAuthenticatedHttpClient().post(url, content);
|
|
44
|
+
return response;
|
|
45
|
+
});
|
|
46
|
+
const logEvent = (_a) => __awaiter(void 0, [_a], void 0, function* ({ eventName, data, courseId }) {
|
|
47
|
+
const url = urls.event();
|
|
48
|
+
const content = {
|
|
49
|
+
courserun_key: courseId,
|
|
50
|
+
event_type: eventName,
|
|
51
|
+
page: window.location.href,
|
|
52
|
+
event: JSON.stringify(data),
|
|
53
|
+
};
|
|
54
|
+
const response = yield getAuthenticatedHttpClient().post(url, content);
|
|
55
|
+
return response;
|
|
56
|
+
});
|
|
57
|
+
const logShare = ({ courseId, site }) => {
|
|
58
|
+
const eventData = {
|
|
59
|
+
eventName: eventNames.shareClicked,
|
|
60
|
+
courseId,
|
|
61
|
+
data: {
|
|
62
|
+
course_id: courseId,
|
|
63
|
+
social_media_site: site,
|
|
64
|
+
location: 'dashboard',
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
return logEvent(eventData);
|
|
40
68
|
};
|
|
69
|
+
const createCreditRequest = (_a) => __awaiter(void 0, [_a], void 0, function* ({ providerId, courseId, username }) {
|
|
70
|
+
const url = urls.creditRequestUrl(providerId);
|
|
71
|
+
const content = { course_key: courseId, username };
|
|
72
|
+
const response = yield getAuthenticatedHttpClient().post(url, content);
|
|
73
|
+
return response;
|
|
74
|
+
});
|
|
75
|
+
const sendConfirmEmail = (sendEmailUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
76
|
+
const response = yield getAuthenticatedHttpClient().post(sendEmailUrl);
|
|
77
|
+
return response;
|
|
78
|
+
});
|
|
79
|
+
export { initializeList, unenrollFromCourse, updateEntitlementEnrollment, deleteEntitlementEnrollment, updateEmailSettings, logEvent, logShare, createCreditRequest, sendConfirmEmail, };
|
|
41
80
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/data/services/lms/api.
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/data/services/lms/api.ts"],"names":[],"mappings":"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","sourcesContent":["import { getAuthenticatedHttpClient } from '@openedx/frontend-base';\nimport { apiKeys, enableEmailsAction, unenrollmentAction } from '@src/data/services/lms/constants';\nimport urls from '@src/data/services/lms/urls';\nimport { stringifyUrl } from '@src/data/services/lms/utils';\nimport eventNames from '@src/tracking/constants';\n\nconst initializeList = async (user) => {\n const { data } = await getAuthenticatedHttpClient().get(\n stringifyUrl(urls.getInitApiUrl(), { [apiKeys.user]: user }),\n );\n return data;\n};\n\nconst unenrollFromCourse = async ({ courseId }) => {\n const url = urls.courseUnenroll();\n const formData = new FormData();\n formData.append(apiKeys.courseId, courseId);\n Object.entries(unenrollmentAction).forEach(([key, value]) => {\n formData.append(key, value);\n });\n const response = await getAuthenticatedHttpClient().post(url, formData);\n return response;\n};\n\nconst updateEntitlementEnrollment = async ({ uuid, courseId }) => {\n const url = urls.entitlementEnrollment(uuid);\n const content = { [apiKeys.courseRunId]: courseId };\n const response = await getAuthenticatedHttpClient().post(url, content);\n return response;\n};\n\nconst deleteEntitlementEnrollment = async ({ uuid, isRefundable }) => {\n const url = stringifyUrl(\n urls.entitlementEnrollment(uuid),\n { [apiKeys.isRefund]: isRefundable },\n );\n const response = await getAuthenticatedHttpClient().delete(url);\n return response;\n};\n\nconst updateEmailSettings = async ({ courseId, enable }) => {\n const url = urls.updateEmailSettings();\n const content = { [apiKeys.courseId]: courseId, ...(enable && enableEmailsAction) };\n const response = await getAuthenticatedHttpClient().post(url, content);\n return response;\n};\n\nconst logEvent = async ({ eventName, data, courseId }) => {\n const url = urls.event();\n const content = {\n courserun_key: courseId,\n event_type: eventName,\n page: window.location.href,\n event: JSON.stringify(data),\n };\n const response = await getAuthenticatedHttpClient().post(url, content);\n return response;\n};\n\nconst logShare = ({ courseId, site }) => {\n const eventData = {\n eventName: eventNames.shareClicked,\n courseId,\n data: {\n course_id: courseId,\n social_media_site: site,\n location: 'dashboard',\n },\n };\n return logEvent(eventData);\n};\n\nconst createCreditRequest = async ({ providerId, courseId, username }) => {\n const url = urls.creditRequestUrl(providerId);\n const content = { course_key: courseId, username };\n const response = await getAuthenticatedHttpClient().post(url, content);\n return response;\n};\n\nconst sendConfirmEmail = async (sendEmailUrl: string) => {\n const response = await getAuthenticatedHttpClient().post(sendEmailUrl);\n return response;\n};\n\nexport {\n initializeList,\n unenrollFromCourse,\n updateEntitlementEnrollment,\n deleteEntitlementEnrollment,\n updateEmailSettings,\n logEvent,\n logShare,\n createCreditRequest,\n sendConfirmEmail,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/data/services/lms/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/data/services/lms/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,eAAe,UAAU,CAAC;IACxB,GAAG;IACH,IAAI;CACL,CAAC,CAAC","sourcesContent":["import { StrictDict } from '@src/utils';\nimport api from './api';\nimport urls from './urls';\n\nexport default StrictDict({\n api,\n urls,\n});\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { appId } from '../../../constants';
|
|
2
2
|
import { StrictDict } from '../../../utils';
|
|
3
3
|
import { getAppConfig, getSiteConfig } from '@openedx/frontend-base';
|
|
4
|
-
export const getEcommerceUrl = () => getAppConfig(appId).ECOMMERCE_BASE_URL;
|
|
5
4
|
const getBaseUrl = () => getSiteConfig().lmsBaseUrl;
|
|
6
5
|
export const getApiUrl = () => (`${getSiteConfig().lmsBaseUrl}/api`);
|
|
7
6
|
const getInitApiUrl = () => (`${getApiUrl()}/learner_home/init`);
|
|
@@ -15,7 +14,12 @@ export const baseAppUrl = (url) => updateUrl(getBaseUrl(), url);
|
|
|
15
14
|
export const learningMfeUrl = (url) => updateUrl(getAppConfig(appId).LEARNING_BASE_URL, url);
|
|
16
15
|
// static view url
|
|
17
16
|
const programsUrl = () => baseAppUrl('/dashboard/programs');
|
|
18
|
-
export const creditPurchaseUrl = (courseId) =>
|
|
17
|
+
export const creditPurchaseUrl = (courseId) => {
|
|
18
|
+
const config = getAppConfig(appId);
|
|
19
|
+
return config.CREDIT_PURCHASE_URL
|
|
20
|
+
? `${config.CREDIT_PURCHASE_URL}/${courseId}/`
|
|
21
|
+
: `${config.ECOMMERCE_BASE_URL}/credit/checkout/${courseId}/`;
|
|
22
|
+
};
|
|
19
23
|
export const creditRequestUrl = (providerId) => `${getApiUrl()}/credit/v1/providers/${providerId}/request/`;
|
|
20
24
|
export default StrictDict({
|
|
21
25
|
getApiUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../../src/data/services/lms/urls.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,
|
|
1
|
+
{"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../../src/data/services/lms/urls.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAErE,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC,UAAU,MAAM,CAAC,CAAC;AAErE,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAEjE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC;AAC5C,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,GAAG,UAAU,EAAE,oBAAoB,CAAC;AACjE,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,GAAG,SAAS,EAAE,wBAAwB,CAAC;AACzE,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,SAAS,EAAE,iCAAiC,IAAI,cAAc,CAAC;AAE1G,8CAA8C;AAC9C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;AAE3I,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AAChE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAE7F,kBAAkB;AAClB,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,EAAE;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,mBAAmB;QAC/B,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,IAAI,QAAQ,GAAG;QAC9C,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,oBAAoB,QAAQ,GAAG,CAAC;AAClE,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,SAAS,EAAE,wBAAwB,UAAU,WAAW,CAAC;AAE5G,eAAe,UAAU,CAAC;IACxB,SAAS;IACT,UAAU;IACV,cAAc;IACd,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,KAAK;IACL,aAAa;IACb,cAAc;IACd,WAAW;IACX,mBAAmB;CACpB,CAAC,CAAC","sourcesContent":["import { appId } from '../../../constants';\nimport { StrictDict } from '../../../utils';\n\nimport { getAppConfig, getSiteConfig } from '@openedx/frontend-base';\n\nconst getBaseUrl = () => getSiteConfig().lmsBaseUrl;\n\nexport const getApiUrl = () => (`${getSiteConfig().lmsBaseUrl}/api`);\n\nconst getInitApiUrl = () => (`${getApiUrl()}/learner_home/init`);\n\nconst event = () => `${getBaseUrl()}/event`;\nconst courseUnenroll = () => `${getBaseUrl()}/change_enrollment`;\nconst updateEmailSettings = () => `${getApiUrl()}/change_email_settings`;\nconst entitlementEnrollment = (uuid) => `${getApiUrl()}/entitlements/v1/entitlements/${uuid}/enrollments`;\n\n// if url is null or absolute, return it as is\nexport const updateUrl = (base, url) => ((url == null || url.startsWith('http://') || url.startsWith('https://')) ? url : `${base}${url}`);\n\nexport const baseAppUrl = (url) => updateUrl(getBaseUrl(), url);\nexport const learningMfeUrl = (url) => updateUrl(getAppConfig(appId).LEARNING_BASE_URL, url);\n\n// static view url\nconst programsUrl = () => baseAppUrl('/dashboard/programs');\n\nexport const creditPurchaseUrl = (courseId) => {\n const config = getAppConfig(appId);\n return config.CREDIT_PURCHASE_URL\n ? `${config.CREDIT_PURCHASE_URL}/${courseId}/`\n : `${config.ECOMMERCE_BASE_URL}/credit/checkout/${courseId}/`;\n};\nexport const creditRequestUrl = (providerId) => `${getApiUrl()}/credit/v1/providers/${providerId}/request/`;\n\nexport default StrictDict({\n getApiUrl,\n baseAppUrl,\n courseUnenroll,\n creditPurchaseUrl,\n creditRequestUrl,\n entitlementEnrollment,\n event,\n getInitApiUrl,\n learningMfeUrl,\n programsUrl,\n updateEmailSettings,\n});\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export const LINK_TIMEOUT: 300;
|
|
2
2
|
export function createEventTracker(name: any, options?: {}): () => void;
|
|
3
|
-
export function createLinkTracker(tracker: any, href: any): (e: any) =>
|
|
3
|
+
export function createLinkTracker(tracker: any, href: any): (e: any) => number;
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export const reduxHooks: typeof redux;
|
|
2
|
-
export const apiHooks: typeof api;
|
|
3
1
|
export const utilHooks: typeof utils;
|
|
4
|
-
import * as redux from '../data/redux/hooks';
|
|
5
|
-
import * as api from './api';
|
|
6
2
|
import * as utils from './utils';
|
|
3
|
+
import useCourseData from './useCourseData';
|
|
4
|
+
import useCourseTrackingEvent from './useCourseTrackingEvent';
|
|
5
|
+
import useEntitlementInfo from './useEntitlementInfo';
|
|
6
|
+
import useIsMasquerading from './useIsMasquerading';
|
|
7
|
+
export { useCourseData, useCourseTrackingEvent, useEntitlementInfo, useIsMasquerading };
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import * as redux from '../data/redux/hooks';
|
|
2
|
-
import * as api from './api';
|
|
3
1
|
import * as utils from './utils';
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import useCourseData from './useCourseData';
|
|
3
|
+
import useCourseTrackingEvent from './useCourseTrackingEvent';
|
|
4
|
+
import useEntitlementInfo from './useEntitlementInfo';
|
|
5
|
+
import useIsMasquerading from './useIsMasquerading';
|
|
6
6
|
export const utilHooks = utils;
|
|
7
|
+
export { useCourseData };
|
|
8
|
+
export { useCourseTrackingEvent };
|
|
9
|
+
export { useEntitlementInfo };
|
|
10
|
+
export { useIsMasquerading };
|
|
7
11
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["import * as utils from './utils';\nimport useCourseData from './useCourseData';\nimport useCourseTrackingEvent from './useCourseTrackingEvent';\nimport useEntitlementInfo from './useEntitlementInfo';\nimport useIsMasquerading from './useIsMasquerading';\n\nexport const utilHooks = utils;\nexport { useCourseData };\nexport { useCourseTrackingEvent };\nexport { useEntitlementInfo };\nexport { useIsMasquerading };\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useInitializeLearnerHome } from '../data/hooks';
|
|
2
|
+
const useCourseData = (cardId) => {
|
|
3
|
+
var _a;
|
|
4
|
+
const { data } = useInitializeLearnerHome();
|
|
5
|
+
return (_a = data === null || data === void 0 ? void 0 : data.coursesByCardId) === null || _a === void 0 ? void 0 : _a[cardId];
|
|
6
|
+
};
|
|
7
|
+
export default useCourseData;
|
|
8
|
+
//# sourceMappingURL=useCourseData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCourseData.js","sourceRoot":"","sources":["../../src/hooks/useCourseData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;;IACvC,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAwB,EAAE,CAAC;IAC5C,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,0CAAG,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { useInitializeLearnerHome } from '@src/data/hooks';\n\nconst useCourseData = (cardId: string) => {\n const { data } = useInitializeLearnerHome();\n return data?.coursesByCardId?.[cardId];\n};\n\nexport default useCourseData;\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import useCourseData from './useCourseData';
|
|
2
|
+
const useCourseTrackingEvent = (tracker, cardId, ...args) => {
|
|
3
|
+
var _a;
|
|
4
|
+
const courseData = useCourseData(cardId);
|
|
5
|
+
const courseId = (_a = courseData === null || courseData === void 0 ? void 0 : courseData.courseRun) === null || _a === void 0 ? void 0 : _a.courseId;
|
|
6
|
+
return (e) => {
|
|
7
|
+
if (courseId) {
|
|
8
|
+
tracker(courseId, ...args)(e);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export default useCourseTrackingEvent;
|
|
13
|
+
//# sourceMappingURL=useCourseTrackingEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCourseTrackingEvent.js","sourceRoot":"","sources":["../../src/hooks/useCourseTrackingEvent.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,MAAM,sBAAsB,GAAG,CAAC,OAA6B,EAAE,MAAc,EAAE,GAAG,IAAW,EAAE,EAAE;;IAC/F,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAC,UAAkB,aAAlB,UAAU,uBAAV,UAAU,CAAU,SAAS,0CAAE,QAAQ,CAAC;IAE1D,OAAO,CAAC,CAAQ,EAAE,EAAE;QAClB,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,sBAAsB,CAAC","sourcesContent":["import useCourseData from './useCourseData';\n\nconst useCourseTrackingEvent = (tracker: (...a: any[]) => any, cardId: string, ...args: any[]) => {\n const courseData = useCourseData(cardId);\n const courseId = (courseData as any)?.courseRun?.courseId;\n\n return (e: Event) => {\n if (courseId) {\n tracker(courseId, ...args)(e);\n }\n };\n};\n\nexport default useCourseTrackingEvent;\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare const useEntitlementInfo: (courseData: any) => {
|
|
2
|
+
isEntitlement: boolean;
|
|
3
|
+
availableSessions?: undefined;
|
|
4
|
+
changeDeadline?: undefined;
|
|
5
|
+
isExpired?: undefined;
|
|
6
|
+
isFulfilled?: undefined;
|
|
7
|
+
uuid?: undefined;
|
|
8
|
+
hasSessions?: undefined;
|
|
9
|
+
canChange?: undefined;
|
|
10
|
+
showExpirationWarning?: undefined;
|
|
11
|
+
} | {
|
|
12
|
+
isEntitlement: boolean;
|
|
13
|
+
availableSessions: any;
|
|
14
|
+
changeDeadline: Date;
|
|
15
|
+
isExpired: any;
|
|
16
|
+
isFulfilled: any;
|
|
17
|
+
uuid: any;
|
|
18
|
+
hasSessions: boolean;
|
|
19
|
+
canChange: boolean;
|
|
20
|
+
showExpirationWarning: boolean;
|
|
21
|
+
};
|
|
22
|
+
export default useEntitlementInfo;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
const useEntitlementInfo = (courseData) => useMemo(() => {
|
|
3
|
+
var _a;
|
|
4
|
+
const { entitlement } = courseData || {};
|
|
5
|
+
if (!entitlement || Object.keys(entitlement).length === 0 || entitlement.isEntitlement === false) {
|
|
6
|
+
return { isEntitlement: false };
|
|
7
|
+
}
|
|
8
|
+
const today = new Date();
|
|
9
|
+
const dateSixMonthsFromNow = new Date();
|
|
10
|
+
dateSixMonthsFromNow.setDate(dateSixMonthsFromNow.getDate() + 180);
|
|
11
|
+
const deadline = new Date(entitlement.changeDeadline);
|
|
12
|
+
const deadlinePassed = deadline < today;
|
|
13
|
+
const showExpirationWarning = (!entitlement.isFulfilled
|
|
14
|
+
&& !deadlinePassed
|
|
15
|
+
&& deadline <= dateSixMonthsFromNow);
|
|
16
|
+
return {
|
|
17
|
+
isEntitlement: true,
|
|
18
|
+
availableSessions: entitlement.availableSessions,
|
|
19
|
+
changeDeadline: deadline,
|
|
20
|
+
isExpired: entitlement.isExpired,
|
|
21
|
+
isFulfilled: entitlement.isFulfilled,
|
|
22
|
+
uuid: entitlement.uuid,
|
|
23
|
+
hasSessions: ((_a = entitlement.availableSessions) === null || _a === void 0 ? void 0 : _a.length) > 0,
|
|
24
|
+
canChange: !deadlinePassed,
|
|
25
|
+
showExpirationWarning,
|
|
26
|
+
};
|
|
27
|
+
}, [courseData]);
|
|
28
|
+
export default useEntitlementInfo;
|
|
29
|
+
//# sourceMappingURL=useEntitlementInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEntitlementInfo.js","sourceRoot":"","sources":["../../src/hooks/useEntitlementInfo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;;IACtD,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;QACjG,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,MAAM,oBAAoB,GAAG,IAAI,IAAI,EAAE,CAAC;IACxC,oBAAoB,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,CAAC;IACxC,MAAM,qBAAqB,GAAG,CAC5B,CAAC,WAAW,CAAC,WAAW;WACrB,CAAC,cAAc;WACf,QAAQ,IAAI,oBAAoB,CACpC,CAAC;IACF,OAAO;QACL,aAAa,EAAE,IAAI;QAEnB,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;QAChD,cAAc,EAAE,QAAQ;QACxB,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,IAAI,EAAE,WAAW,CAAC,IAAI;QAEtB,WAAW,EAAE,CAAA,MAAA,WAAW,CAAC,iBAAiB,0CAAE,MAAM,IAAG,CAAC;QACtD,SAAS,EAAE,CAAC,cAAc;QAC1B,qBAAqB;KACtB,CAAC;AACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjB,eAAe,kBAAkB,CAAC","sourcesContent":["import { useMemo } from 'react';\n\nconst useEntitlementInfo = (courseData) => useMemo(() => {\n const { entitlement } = courseData || {};\n if (!entitlement || Object.keys(entitlement).length === 0 || entitlement.isEntitlement === false) {\n return { isEntitlement: false };\n }\n const today = new Date();\n const dateSixMonthsFromNow = new Date();\n dateSixMonthsFromNow.setDate(dateSixMonthsFromNow.getDate() + 180);\n const deadline = new Date(entitlement.changeDeadline);\n const deadlinePassed = deadline < today;\n const showExpirationWarning = (\n !entitlement.isFulfilled\n && !deadlinePassed\n && deadline <= dateSixMonthsFromNow\n );\n return {\n isEntitlement: true,\n\n availableSessions: entitlement.availableSessions,\n changeDeadline: deadline,\n isExpired: entitlement.isExpired,\n isFulfilled: entitlement.isFulfilled,\n uuid: entitlement.uuid,\n\n hasSessions: entitlement.availableSessions?.length > 0,\n canChange: !deadlinePassed,\n showExpirationWarning,\n };\n}, [courseData]);\n\nexport default useEntitlementInfo;\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useMasquerade } from '../data/context';
|
|
2
|
+
import { useInitializeLearnerHome } from '../data/hooks';
|
|
3
|
+
const useIsMasquerading = () => {
|
|
4
|
+
const { masqueradeUser } = useMasquerade();
|
|
5
|
+
const { isError } = useInitializeLearnerHome();
|
|
6
|
+
return !!masqueradeUser && !isError;
|
|
7
|
+
};
|
|
8
|
+
export default useIsMasquerading;
|
|
9
|
+
//# sourceMappingURL=useIsMasquerading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsMasquerading.js","sourceRoot":"","sources":["../../src/hooks/useIsMasquerading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,GAAG,wBAAwB,EAAE,CAAC;IAC/C,OAAO,CAAC,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC","sourcesContent":["import { useMasquerade } from '@src/data/context';\nimport { useInitializeLearnerHome } from '@src/data/hooks';\n\nconst useIsMasquerading = () => {\n const { masqueradeUser } = useMasquerade();\n const { isError } = useInitializeLearnerHome();\n return !!masqueradeUser && !isError;\n};\n\nexport default useIsMasquerading;\n"]}
|
package/dist/providers.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import GlobalDataProvider from './data/contexts/GlobalDataProvider';
|
|
2
|
-
import
|
|
2
|
+
import { MasqueradeProvider } from './data/context/MasqueradeProvider';
|
|
3
3
|
const providers = [
|
|
4
4
|
GlobalDataProvider,
|
|
5
|
-
|
|
5
|
+
MasqueradeProvider,
|
|
6
6
|
];
|
|
7
7
|
export default providers;
|
|
8
8
|
//# sourceMappingURL=providers.js.map
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,MAAM,SAAS,GAAkB;IAC/B,kBAAkB;IAClB,kBAAkB;CACnB,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import { AppProvider } from '@openedx/frontend-base';\n\nimport GlobalDataProvider from './data/contexts/GlobalDataProvider';\nimport { MasqueradeProvider } from './data/context/MasqueradeProvider';\n\nconst providers: AppProvider[] = [\n GlobalDataProvider,\n MasqueradeProvider,\n];\n\nexport default providers;\n"]}
|
package/dist/routes.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export default routes;
|
|
|
2
2
|
declare const routes: {
|
|
3
3
|
id: string;
|
|
4
4
|
path: string;
|
|
5
|
+
loader: typeof authenticatedLoader;
|
|
5
6
|
handle: {
|
|
6
7
|
role: string;
|
|
7
8
|
};
|
|
@@ -9,3 +10,4 @@ declare const routes: {
|
|
|
9
10
|
Component: () => import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
}>;
|
|
11
12
|
}[];
|
|
13
|
+
import { authenticatedLoader } from '@openedx/frontend-base';
|
package/dist/routes.js
CHANGED
|
@@ -7,10 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import { authenticatedLoader } from '@openedx/frontend-base';
|
|
10
11
|
const routes = [
|
|
11
12
|
{
|
|
12
13
|
id: 'org.openedx.frontend.route.learnerDashboard.main',
|
|
13
|
-
path: '/',
|
|
14
|
+
path: '/learner-dashboard',
|
|
15
|
+
loader: authenticatedLoader,
|
|
14
16
|
handle: {
|
|
15
17
|
role: 'org.openedx.frontend.role.dashboard'
|
|
16
18
|
},
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.jsx"],"names":[],"mappings":";;;;;;;;;AAAA,MAAM,MAAM,GAAG;IACb;QACE,EAAE,EAAE,kDAAkD;QACtD,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.jsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,MAAM,GAAG;IACb;QACE,EAAE,EAAE,kDAAkD;QACtD,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,IAAI,EAAE,qCAAqC;SAC5C;QACK,IAAI;;gBACR,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,CAAC;SAAA;KACF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import { authenticatedLoader } from '@openedx/frontend-base';\n\nconst routes = [\n {\n id: 'org.openedx.frontend.route.learnerDashboard.main',\n path: '/learner-dashboard',\n loader: authenticatedLoader,\n handle: {\n role: 'org.openedx.frontend.role.dashboard'\n },\n async lazy () {\n const module = await import('./Main');\n return { Component: module.default };\n },\n }\n];\n\nexport default routes;\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { logShare } from '../../data/services/lms/api';
|
|
2
2
|
/**
|
|
3
3
|
* Track Social Share event click.
|
|
4
4
|
* @param {string} courseId - course run identifier
|
|
5
5
|
* @param {string} site - sharing destination ('facebook', 'twitter')
|
|
6
6
|
* @return {func} - Callback that tracks the event when fired.
|
|
7
7
|
*/
|
|
8
|
-
export const shareClicked = (courseId, site) => () =>
|
|
8
|
+
export const shareClicked = (courseId, site) => () => logShare({ courseId, site });
|
|
9
9
|
export default shareClicked;
|
|
10
10
|
//# sourceMappingURL=socialShare.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socialShare.js","sourceRoot":"","sources":["../../../src/tracking/trackers/socialShare.js"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"socialShare.js","sourceRoot":"","sources":["../../../src/tracking/trackers/socialShare.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnF,eAAe,YAAY,CAAC","sourcesContent":["import { logShare } from '@src/data/services/lms/api';\n\n/**\n * Track Social Share event click.\n * @param {string} courseId - course run identifier\n * @param {string} site - sharing destination ('facebook', 'twitter')\n * @return {func} - Callback that tracks the event when fired.\n */\nexport const shareClicked = (courseId, site) => () => logShare({ courseId, site });\n\nexport default shareClicked;\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const getTransformedCourseDataObject: (courses: any) => any;
|
|
2
|
+
declare const getTransformedCourseDataList: (courses: any) => unknown[];
|
|
3
|
+
declare const getVisibleList: (courses: any[], filters: string[], sortBy: string, pageNumber: number) => {
|
|
4
|
+
visibleList: any[];
|
|
5
|
+
numPages: number;
|
|
6
|
+
};
|
|
7
|
+
export { getVisibleList, getTransformedCourseDataList, getTransformedCourseDataObject };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { FilterKeys, ListPageSize, SortKeys } from '../data/constants/app';
|
|
2
|
+
import StrictDict from './StrictDict';
|
|
3
|
+
const cardId = (val) => `card-${val}`;
|
|
4
|
+
const transformCourseData = (courses) => {
|
|
5
|
+
const now = Date.now();
|
|
6
|
+
return courses.reduce((obj, curr, index) => {
|
|
7
|
+
var _a;
|
|
8
|
+
const out = Object.assign(Object.assign({}, curr), { cardId: cardId(index) });
|
|
9
|
+
if (((_a = out.enrollment) === null || _a === void 0 ? void 0 : _a.lastEnrolled) === null) {
|
|
10
|
+
out.enrollment.lastEnrolled = now;
|
|
11
|
+
}
|
|
12
|
+
return Object.assign(Object.assign({}, obj), { [cardId(index)]: out });
|
|
13
|
+
}, {});
|
|
14
|
+
};
|
|
15
|
+
const getTransformedCourseDataObject = (courses) => transformCourseData(courses);
|
|
16
|
+
const getTransformedCourseDataList = (courses) => Object.values(transformCourseData(courses));
|
|
17
|
+
const getVisibleList = (courses, filters, sortBy, pageNumber) => {
|
|
18
|
+
const courseFilters = StrictDict({
|
|
19
|
+
[FilterKeys.notEnrolled]: (course) => !course.enrollment.isEnrolled,
|
|
20
|
+
[FilterKeys.done]: (course) => course.courseRun !== null && course.courseRun.isArchived,
|
|
21
|
+
[FilterKeys.upgraded]: (course) => course.enrollment.isVerified,
|
|
22
|
+
[FilterKeys.inProgress]: (course) => course.enrollment.hasStarted,
|
|
23
|
+
[FilterKeys.notStarted]: (course) => !course.enrollment.hasStarted,
|
|
24
|
+
});
|
|
25
|
+
const transforms = StrictDict({
|
|
26
|
+
[SortKeys.enrolled]: ({ enrollment }) => new Date(enrollment === null || enrollment === void 0 ? void 0 : enrollment.lastEnrolled),
|
|
27
|
+
[SortKeys.title]: ({ course }) => course.courseName.toLowerCase(),
|
|
28
|
+
});
|
|
29
|
+
const courseFilterFn = filtersList => (filtersList.length
|
|
30
|
+
? course => filtersList.reduce((match, filter) => match && courseFilters[filter](course), true)
|
|
31
|
+
: () => true);
|
|
32
|
+
const sortFn = (transform, { reverse }) => (v1, v2) => {
|
|
33
|
+
const [a, b] = [v1, v2].map(transform);
|
|
34
|
+
if (a === b) {
|
|
35
|
+
return 0;
|
|
36
|
+
}
|
|
37
|
+
return ((a > b) ? 1 : -1) * (reverse ? -1 : 1);
|
|
38
|
+
};
|
|
39
|
+
const list = courses
|
|
40
|
+
.filter(courseFilterFn(filters))
|
|
41
|
+
.sort(sortFn(transforms[sortBy], { reverse: sortBy === SortKeys.enrolled }));
|
|
42
|
+
const querySearch = new URLSearchParams(window.location.search);
|
|
43
|
+
const disablePagination = querySearch.get('disable_pagination');
|
|
44
|
+
const pageSize = Number(disablePagination) === 1 ? 0 : ListPageSize;
|
|
45
|
+
if (pageSize === 0) {
|
|
46
|
+
return {
|
|
47
|
+
visibleList: list,
|
|
48
|
+
numPages: 1,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const result = {
|
|
52
|
+
visibleList: list.slice((pageNumber - 1) * pageSize, pageNumber * pageSize),
|
|
53
|
+
numPages: Math.ceil(list.length / pageSize),
|
|
54
|
+
};
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
export { getVisibleList, getTransformedCourseDataList, getTransformedCourseDataObject };
|
|
58
|
+
//# sourceMappingURL=dataTransformers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataTransformers.js","sourceRoot":"","sources":["../../src/utils/dataTransformers.ts"],"names":[],"mappings":"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","sourcesContent":["import { FilterKeys, ListPageSize, SortKeys } from '@src/data/constants/app';\nimport StrictDict from './StrictDict';\n\nconst cardId = (val) => `card-${val}`;\n\nconst transformCourseData = (courses) => {\n const now = Date.now();\n return courses.reduce(\n (obj, curr, index) => {\n const out = { ...curr, cardId: cardId(index) };\n if (out.enrollment?.lastEnrolled === null) {\n out.enrollment.lastEnrolled = now;\n }\n return { ...obj, [cardId(index)]: out };\n },\n {},\n );\n};\n\nconst getTransformedCourseDataObject = (courses) => transformCourseData(courses);\n\nconst getTransformedCourseDataList = (courses) => Object.values(transformCourseData(courses));\n\nconst getVisibleList = (courses: any[], filters: string[], sortBy: string, pageNumber: number) => {\n const courseFilters = StrictDict({\n [FilterKeys.notEnrolled]: (course) => !course.enrollment.isEnrolled,\n [FilterKeys.done]: (course) => course.courseRun !== null && course.courseRun.isArchived,\n [FilterKeys.upgraded]: (course) => course.enrollment.isVerified,\n [FilterKeys.inProgress]: (course) => course.enrollment.hasStarted,\n [FilterKeys.notStarted]: (course) => !course.enrollment.hasStarted,\n });\n\n const transforms = StrictDict({\n [SortKeys.enrolled]: ({ enrollment }) => new Date(enrollment?.lastEnrolled),\n [SortKeys.title]: ({ course }) => course.courseName.toLowerCase(),\n });\n\n const courseFilterFn = filtersList => (filtersList.length\n ? course => filtersList.reduce((match, filter) => match && courseFilters[filter](course), true)\n : () => true);\n\n const sortFn = (transform, { reverse }) => (v1, v2) => {\n const [a, b] = [v1, v2].map(transform);\n if (a === b) {\n return 0;\n }\n return (((a as any) > (b as any)) ? 1 : -1) * (reverse ? -1 : 1);\n };\n\n const list = courses\n .filter(courseFilterFn(filters))\n .sort(sortFn(transforms[sortBy], { reverse: sortBy === SortKeys.enrolled }));\n\n const querySearch = new URLSearchParams(window.location.search);\n const disablePagination = querySearch.get('disable_pagination');\n const pageSize = Number(disablePagination) === 1 ? 0 : ListPageSize;\n\n if (pageSize === 0) {\n return {\n visibleList: list,\n numPages: 1,\n };\n }\n const result = {\n visibleList: list.slice((pageNumber - 1) * pageSize, pageNumber * pageSize),\n numPages: Math.ceil(list.length / pageSize),\n };\n return result;\n};\n\nexport { getVisibleList, getTransformedCourseDataList, getTransformedCourseDataObject };\n"]}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
export const state: any;
|
|
2
1
|
export function useConfirmEmailBannerData(): {
|
|
3
|
-
isNeeded:
|
|
2
|
+
isNeeded: any;
|
|
4
3
|
showPageBanner: any;
|
|
5
|
-
closePageBanner: () =>
|
|
6
|
-
showConfirmModal:
|
|
7
|
-
closeConfirmModal: () =>
|
|
4
|
+
closePageBanner: () => void;
|
|
5
|
+
showConfirmModal: boolean;
|
|
6
|
+
closeConfirmModal: () => void;
|
|
8
7
|
openConfirmModalButtonClick: () => void;
|
|
9
8
|
userConfirmEmailButtonClick: () => void;
|
|
10
9
|
};
|
|
11
|
-
export default
|
|
10
|
+
export default useConfirmEmailBannerData;
|