Files
classroomio/src/components/Course/store.js
T
2021-09-14 07:01:44 +03:00

73 lines
1.8 KiB
JavaScript

import { writable } from 'svelte/store';
import { lessons } from './components/Lesson/store/lessons';
import { ROLE } from '../../utils/constants/roles';
export const course = writable({ id: '' });
export const mockGroupMember = {
id: '434534534535',
group_id: '434534534535',
role_id: 1,
profile_id: 'vcvbcvbcvbb----434534534535',
email: null,
profile: {
id: 'vcvbcvbcvbb----434534534535',
fullname: 'Rotimi Best',
username: 'robertblake',
avatar_url: '',
created_at: '2021-08-08T13:42:13+00:00',
updated_at: '2021-08-08T13:42:13+00:00',
},
};
export const group = writable({
id: null,
tutors: [],
students: [],
people: [],
});
export async function setCourseData(data, setLesson = true) {
if (!data || !(Object.values(data) && Object.values(data).length)) return;
// const tutorsById = {};
if (data.group) {
const groupData = Object.assign(data.group, {
tutors: [],
students: [],
people: [],
});
if (Array.isArray(groupData.members)) {
for (const member of groupData.members) {
if (member.role_id === ROLE.STUDENT) {
groupData.students.push(member);
} else if (member.profile) {
groupData.tutors.push(member.profile);
// tutorsById[member.profile.id] = member.profile;
}
}
groupData.people = groupData.members;
}
delete groupData.members;
group.set(groupData);
}
if (setLesson) {
const orderedLessons = (data.lessons || [])
.sort((a, b) => new Date(a.created_at) - new Date(b.created_at))
.sort((a, b) => a.order - b.order);
// .map((lesson) => ({
// ...lesson,
// profile: lesson.profile && tutorsById[lesson.profile.id],
// }));
lessons.set(orderedLessons);
}
delete data.lessons;
course.set(data);
}