@edx/frontend-app-subscription-learner-dashboard 1.11.0 → 1.12.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/dist/containers/CourseCard/components/CourseCardActions/index.d.ts +3 -1
- package/dist/containers/CourseCard/components/CourseCardActions/index.js +4 -3
- package/dist/containers/CourseCard/components/CourseCardActions/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/UpgradeBanner.d.ts +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/UpgradeBanner.js +14 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/UpgradeBanner.js.map +1 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/index.d.ts +3 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/index.js +10 -3
- package/dist/containers/CourseCard/components/CourseCardBanners/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardBanners/messages.d.ts +16 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/messages.js +10 -0
- package/dist/containers/CourseCard/components/CourseCardBanners/messages.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.d.ts +2 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js +5 -1
- package/dist/containers/CourseCard/components/CourseCardDetails/hooks.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardDetails/index.d.ts +3 -2
- package/dist/containers/CourseCard/components/CourseCardDetails/index.js +16 -4
- package/dist/containers/CourseCard/components/CourseCardDetails/index.js.map +1 -1
- package/dist/containers/CourseCard/components/CourseCardDetails/messages.d.ts +24 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/messages.js +15 -0
- package/dist/containers/CourseCard/components/CourseCardDetails/messages.js.map +1 -1
- package/dist/containers/CourseCard/index.d.ts +3 -1
- package/dist/containers/CourseCard/index.js +3 -2
- package/dist/containers/CourseCard/index.js.map +1 -1
- package/dist/containers/CoursesPanel/CourseList/index.d.ts +1 -0
- package/dist/containers/CoursesPanel/CourseList/index.js +3 -2
- package/dist/containers/CoursesPanel/CourseList/index.js.map +1 -1
- package/dist/containers/CoursesPanel/index.js +2 -7
- package/dist/containers/CoursesPanel/index.js.map +1 -1
- package/dist/containers/CoursesPanel/messages.d.ts +1 -9
- package/dist/containers/CoursesPanel/messages.js +1 -6
- package/dist/containers/CoursesPanel/messages.js.map +1 -1
- package/dist/containers/Dashboard/DashboardContent.d.ts +2 -0
- package/dist/containers/Dashboard/DashboardContent.js +5 -0
- package/dist/containers/Dashboard/DashboardContent.js.map +1 -0
- package/dist/containers/Dashboard/DashboardTabs.js +2 -1
- package/dist/containers/Dashboard/DashboardTabs.js.map +1 -1
- package/dist/containers/Dashboard/index.js +2 -2
- package/dist/containers/Dashboard/index.js.map +1 -1
- package/dist/containers/HistoryPanel/index.d.ts +5 -0
- package/dist/containers/HistoryPanel/index.js +41 -0
- package/dist/containers/HistoryPanel/index.js.map +1 -0
- package/dist/containers/HistoryPanel/messages.d.ts +8 -0
- package/dist/containers/HistoryPanel/messages.js +10 -0
- package/dist/containers/HistoryPanel/messages.js.map +1 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgress.js +2 -1
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgress.js.map +1 -1
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/ProgramProgressCircle.d.ts +4 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/ProgramProgressCircle.js +29 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/ProgramProgressCircle.js.map +1 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/index.d.ts +4 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/index.js +12 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/index.js.map +1 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/ProgramProgressSidebar/index.scss +63 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/messages.d.ts +20 -0
- package/dist/containers/ProgramDashboard/ProgramProgress/messages.js +21 -1
- package/dist/containers/ProgramDashboard/ProgramProgress/messages.js.map +1 -1
- package/dist/containers/ProgramDashboard/data/constants.d.ts +7 -0
- package/dist/containers/ProgramDashboard/data/constants.js +7 -0
- package/dist/containers/ProgramDashboard/data/constants.js.map +1 -1
- package/dist/data/hooks/queryHooks.js +6 -1
- package/dist/data/hooks/queryHooks.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,3 +6,10 @@ export declare const PROGRAM_TYPE_MAP: {
|
|
|
6
6
|
MICROBACHELORS: string;
|
|
7
7
|
MASTERS: string;
|
|
8
8
|
};
|
|
9
|
+
export declare const PROGRAM_PROGRESS_CIRCLE_MAP: {
|
|
10
|
+
X_AXIS: number;
|
|
11
|
+
Y_AXIS: number;
|
|
12
|
+
CIRCLE_RADIUS: number;
|
|
13
|
+
CIRCLE_DEGREES: number;
|
|
14
|
+
STROKE_WIDTH: number;
|
|
15
|
+
};
|
|
@@ -6,4 +6,11 @@ export const PROGRAM_TYPE_MAP = {
|
|
|
6
6
|
MICROBACHELORS: 'MicroBachelors',
|
|
7
7
|
MASTERS: 'Masters',
|
|
8
8
|
};
|
|
9
|
+
export const PROGRAM_PROGRESS_CIRCLE_MAP = {
|
|
10
|
+
X_AXIS: 22,
|
|
11
|
+
Y_AXIS: 22,
|
|
12
|
+
CIRCLE_RADIUS: 16,
|
|
13
|
+
CIRCLE_DEGREES: 180,
|
|
14
|
+
STROKE_WIDTH: 1.2,
|
|
15
|
+
};
|
|
9
16
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/containers/ProgramDashboard/data/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,wBAAwB,EAAE,0BAA0B;IACpD,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;CACnB,CAAC","sourcesContent":["export const PROGRAM_TYPE_MAP = {\n MICROMASTERS: 'MicroMasters',\n CREDIT: 'Credit',\n XSERIES: 'XSeries',\n PROFESSIONAL_CERTIFICATE: 'Professional Certificate',\n MICROBACHELORS: 'MicroBachelors',\n MASTERS: 'Masters',\n};\n"]}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/containers/ProgramDashboard/data/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,wBAAwB,EAAE,0BAA0B;IACpD,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,GAAG;CAClB,CAAC","sourcesContent":["export const PROGRAM_TYPE_MAP = {\n MICROMASTERS: 'MicroMasters',\n CREDIT: 'Credit',\n XSERIES: 'XSeries',\n PROFESSIONAL_CERTIFICATE: 'Professional Certificate',\n MICROBACHELORS: 'MicroBachelors',\n MASTERS: 'Masters',\n};\n\nexport const PROGRAM_PROGRESS_CIRCLE_MAP = {\n X_AXIS: 22,\n Y_AXIS: 22,\n CIRCLE_RADIUS: 16,\n CIRCLE_DEGREES: 180,\n STROKE_WIDTH: 1.2,\n};\n"]}
|
|
@@ -14,6 +14,10 @@ import GlobalDataContext from '../../data/contexts/GlobalDataContext';
|
|
|
14
14
|
import { getTransformedCourseDataObject } from '../../utils/dataTransformers';
|
|
15
15
|
import { learnerDashboardQueryKeys } from './queryKeys';
|
|
16
16
|
import { getProgramProgressData, getProgramsListData, initializeCourseList, initializeSubsList } from '../../data/services/subs';
|
|
17
|
+
const getCombinedCourses = (data) => ([
|
|
18
|
+
...((data === null || data === void 0 ? void 0 : data.subscriptionCourses) || []).map(course => (Object.assign(Object.assign({}, course), { isFromNonUpgradeableCourses: false }))),
|
|
19
|
+
...((data === null || data === void 0 ? void 0 : data.nonUpgradeableCourses) || []).map(course => (Object.assign(Object.assign({}, course), { isFromNonUpgradeableCourses: true }))),
|
|
20
|
+
]);
|
|
17
21
|
const useInitializeSubsDashboard = () => {
|
|
18
22
|
const { masqueradeUser } = useMasquerade();
|
|
19
23
|
const queryClient = useQueryClient();
|
|
@@ -60,7 +64,8 @@ const useInitializeSubsCourseDashboard = () => {
|
|
|
60
64
|
queryKey: learnerDashboardQueryKeys.initializeSubsCourseDashboard(masqueradeUser),
|
|
61
65
|
queryFn: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
66
|
const data = yield initializeCourseList(masqueradeUser);
|
|
63
|
-
|
|
67
|
+
const combinedCourses = getCombinedCourses(data);
|
|
68
|
+
return Object.assign(Object.assign({}, data), { coursesByCardId: getTransformedCourseDataObject(combinedCourses) });
|
|
64
69
|
}),
|
|
65
70
|
staleTime: 5 * 60 * 1000, // 5 minutes — dashboard data rarely changes while viewing
|
|
66
71
|
retry: (failureCount, error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryHooks.js","sourceRoot":"","sources":["../../../src/data/hooks/queryHooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"queryHooks.js","sourceRoot":"","sources":["../../../src/data/hooks/queryHooks.ts"],"names":[],"mappings":"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","sourcesContent":["import { useQuery, useQueryClient } from '@tanstack/react-query';\nimport { useContext, useEffect } from 'react';\nimport { useMasquerade } from '@src/data/context';\nimport GlobalDataContext from '@src/data/contexts/GlobalDataContext';\nimport { ProgramListData, ProgramProgressData } from '@src/containers/ProgramDashboard/data/types';\nimport { getTransformedCourseDataObject } from '@src/utils/dataTransformers';\nimport { learnerDashboardQueryKeys } from './queryKeys';\nimport { getProgramProgressData, getProgramsListData, initializeCourseList, initializeSubsList } from '@src/data/services/subs';\n\nconst getCombinedCourses = (data) => ([\n ...(data?.subscriptionCourses || []).map(course => ({\n ...course,\n isFromNonUpgradeableCourses: false,\n })),\n ...(data?.nonUpgradeableCourses || []).map(course => ({\n ...course,\n isFromNonUpgradeableCourses: true,\n })),\n]);\n\nconst useInitializeSubsDashboard = () => {\n const { masqueradeUser } = useMasquerade();\n const queryClient = useQueryClient();\n const { setEmailConfirmation, setPlatformSettings } = useContext(GlobalDataContext);\n\n const query = useQuery({\n queryKey: learnerDashboardQueryKeys.initializeSubsDashboard(masqueradeUser),\n queryFn: async () => {\n const data = await initializeSubsList(masqueradeUser);\n return {\n ...data,\n };\n },\n staleTime: 5 * 60 * 1000, // 5 minutes — dashboard data rarely changes while viewing\n retry: (failureCount, error: any) => {\n // Don't retry client errors (4xx) — they won't resolve on retry\n if (error?.response?.status >= 400 && error?.response?.status < 500) return false;\n return failureCount < 3;\n },\n retryOnMount: !masqueradeUser,\n refetchOnMount: !masqueradeUser,\n });\n\n // Populate shell-level GlobalDataProvider so header widgets can access this data\n useEffect(() => {\n if (query.data && !masqueradeUser) {\n if (query.data.emailConfirmation && setEmailConfirmation) {\n setEmailConfirmation(query.data.emailConfirmation);\n }\n if (query.data.platformSettings && setPlatformSettings) {\n setPlatformSettings(query.data.platformSettings);\n }\n }\n }, [masqueradeUser, query.data, setEmailConfirmation, setPlatformSettings]);\n\n // When masquerading fails, fall back to the normal user's cached data\n let { data } = query;\n if (masqueradeUser && query.isError) {\n data = queryClient.getQueryData(learnerDashboardQueryKeys.initializeSubsDashboard(undefined));\n }\n\n return { ...query, data };\n};\n\nconst useInitializeSubsCourseDashboard = () => {\n const { masqueradeUser } = useMasquerade();\n const queryClient = useQueryClient();\n\n const query = useQuery({\n queryKey: learnerDashboardQueryKeys.initializeSubsCourseDashboard(masqueradeUser),\n queryFn: async () => {\n const data = await initializeCourseList(masqueradeUser);\n const combinedCourses = getCombinedCourses(data);\n return {\n ...data,\n coursesByCardId: getTransformedCourseDataObject(combinedCourses),\n };\n },\n staleTime: 5 * 60 * 1000, // 5 minutes — dashboard data rarely changes while viewing\n retry: (failureCount, error: any) => {\n // Don't retry client errors (4xx) — they won't resolve on retry\n if (error?.response?.status >= 400 && error?.response?.status < 500) return false;\n return failureCount < 3;\n },\n retryOnMount: !masqueradeUser,\n refetchOnMount: !masqueradeUser,\n });\n\n // When masquerading fails, fall back to the normal user's cached data\n let { data } = query;\n if (masqueradeUser && query.isError) {\n data = queryClient.getQueryData(learnerDashboardQueryKeys.initializeSubsCourseDashboard(undefined));\n }\n\n return { ...query, data };\n};\n\nconst useProgramsListData = () => {\n return useQuery<ProgramListData>({\n queryKey: ['programsList'],\n queryFn: getProgramsListData,\n retry: false,\n refetchOnWindowFocus: false,\n });\n};\n\nconst useProgramProgressData = (uuid: string) => {\n return useQuery<ProgramProgressData>({\n queryKey: ['programProgress', uuid],\n queryFn: () => getProgramProgressData(uuid),\n enabled: !!uuid,\n staleTime: 1000 * 60 * 5, // 5 min caching\n retry: 2,\n });\n};\n\nexport {\n useInitializeSubsDashboard,\n useInitializeSubsCourseDashboard,\n useProgramProgressData,\n useProgramsListData,\n};\n"]}
|