feat: Sidebar refactor and add support for discussions sidebar. (#762)

squash!: remove unnecessary styling and migrate to bootstrap and other review feedback
This commit is contained in:
Kshitij Sobti
2022-03-07 19:26:05 +05:30
committed by GitHub
parent 1bbcc6d052
commit f004d0ab3c
46 changed files with 954 additions and 537 deletions

View File

@@ -1,24 +1,26 @@
import { logError, logInfo } from '@edx/frontend-platform/logging';
import { getCourseHomeCourseMetadata } from '../../course-home/data/api';
import {
addModel, addModelsMap, updateModel, updateModels, updateModelsMap,
} from '../../generic/model-store';
import {
getBlockCompletion,
getCourseDiscussionConfig,
getCourseMetadata,
getCourseTopics,
getLearningSequencesOutline,
getSequenceMetadata,
postIntegritySignature,
postSequencePosition,
} from './api';
import { getCourseHomeCourseMetadata } from '../../course-home/data/api';
import {
updateModel, addModel, updateModelsMap, addModelsMap, updateModels,
} from '../../generic/model-store';
import {
fetchCourseDenied,
fetchCourseFailure,
fetchCourseRequest,
fetchCourseSuccess,
fetchCourseFailure,
fetchCourseDenied,
fetchSequenceFailure,
fetchSequenceRequest,
fetchSequenceSuccess,
fetchSequenceFailure,
} from './slice';
export function fetchCourse(courseId) {
@@ -231,3 +233,23 @@ export function saveIntegritySignature(courseId, isMasquerading) {
}
};
}
export function getCourseDiscussionTopics(courseId) {
return async (dispatch) => {
try {
const config = await getCourseDiscussionConfig(courseId);
// Only load topics for the openedx provider, the legacy provider uses
// the xblock
if (config.provider === 'openedx') {
const topics = await getCourseTopics(courseId);
dispatch(updateModels({
modelType: 'discussionTopics',
models: topics,
idField: 'usageKey',
}));
}
} catch (error) {
logError(error);
}
};
}