1919 Start <a @click =" $emit('session-finished')" >another study session</a >, or try
2020 <router-link :to =" `/edit/${courseID}`" >adding some new content</router-link > to challenge yourself and others!
2121 </p >
22- <heat-map activity-records-getter =" user.getActivityRecords" />
22+ <heat-map : activity-records-getter =" user.getActivityRecords" />
2323 </div >
2424
2525 <div v-else ref =" shadowWrapper" >
7272import { defineComponent , PropType } from ' vue' ;
7373import { isQuestionView } from ' ../composables/CompositionViewable' ;
7474import { alertUser } from ' ./SnackbarService' ;
75- import ViewComponent from ' .. /composables/Displayable ' ;
75+ import { ViewComponent } from ' @ /composables' ;
7676import SkMouseTrap from ' ./SkMouseTrap.vue' ;
7777import StudySessionTimer from ' ./StudySessionTimer.vue' ;
7878import HeatMap from ' ./HeatMap.vue' ;
7979import CardViewer from ' ./cardRendering/CardViewer.vue' ;
8080
8181import {
82- getCourseDoc ,
83- removeScheduledCardReview ,
84- scheduleCardReview ,
8582 ContentSourceID ,
8683 getStudySource ,
8784 isReview ,
8885 StudyContentSource ,
8986 StudySessionItem ,
90- CourseDB ,
91- getCourseName ,
92- updateCardElo ,
9387 docIsDeleted ,
9488 CardData ,
9589 CardHistory ,
9690 CardRecord ,
9791 DisplayableData ,
9892 isQuestionRecord ,
9993 CourseRegistrationDoc ,
100- updateUserElo ,
101- User ,
102- StudentClassroomDB ,
94+ DataLayerProvider ,
95+ UserDBInterface ,
10396} from ' @vue-skuilder/db' ;
10497import { SessionController , StudySessionRecord } from ' @vue-skuilder/db' ;
10598import { newInterval } from ' @vue-skuilder/db' ;
@@ -148,7 +141,11 @@ export default defineComponent({
148141 required: true ,
149142 },
150143 user: {
151- type: Object as PropType <User >,
144+ type: Object as PropType <UserDBInterface >,
145+ required: true ,
146+ },
147+ dataLayer: {
148+ type: Object as PropType <DataLayerProvider >,
152149 required: true ,
153150 },
154151 sessionConfig: {
@@ -242,7 +239,7 @@ export default defineComponent({
242239 handleClassroomMessage() {
243240 return (v : unknown ) => {
244241 alertUser ({
245- text: this .user ?.username || ' [Unknown user]' ,
242+ text: this .user ?.getUsername () || ' [Unknown user]' ,
246243 status: Status .ok ,
247244 });
248245 console .log (` [StudySession] There was a change in the classroom DB: ` );
@@ -294,11 +291,11 @@ export default defineComponent({
294291 const sessionClassroomDBs = await Promise .all (
295292 this .contentSources
296293 .filter ((s ) => s .type === ' classroom' )
297- .map (async (c ) => StudentClassroomDB . factory (c .id , this . user ))
294+ .map (async (c ) => await this . dataLayer . getClassroomDB (c .id , ' student ' ))
298295 );
299296
300297 sessionClassroomDBs .forEach ((db ) => {
301- db .setChangeFcn (this .handleClassroomMessage ());
298+ // db.setChangeFcn(this.handleClassroomMessage());
302299 });
303300
304301 this .sessionController = new SessionController (this .sessionContentSources , 60 * this .sessionTimeLimit );
@@ -311,7 +308,9 @@ export default defineComponent({
311308
312309 this .contentSources
313310 .filter ((s ) => s .type === ' course' )
314- .forEach (async (c ) => (this .courseNames [c .id ] = await getCourseName (c .id )));
311+ .forEach (
312+ async (c ) => (this .courseNames [c .id ] = (await this .dataLayer .getCoursesDB ().getCourseConfig (c .id )).name )
313+ );
315314
316315 console .log (` [StudySession] Session created:
317316 ${this .sessionController .toString ()}
@@ -429,20 +428,17 @@ export default defineComponent({
429428 if (k ) {
430429 console .warn (` k value interpretation not currently implemented ` );
431430 }
431+ const courseDB = this .dataLayer .getCourseDB (this .currentCard .card .course_id );
432432 const userElo = toCourseElo (this .userCourseRegDoc ! .courses .find ((c ) => c .courseID === course_id )! .elo );
433- const cardElo = (
434- await new CourseDB (this .currentCard .card .course_id , () => Promise .resolve (this .user )).getCardEloData ([
435- this .currentCard .card .card_id ,
436- ])
437- )[0 ];
433+ const cardElo = (await courseDB .getCardEloData ([this .currentCard .card .card_id ]))[0 ];
438434
439435 if (cardElo && userElo ) {
440436 const eloUpdate = adjustCourseScores (userElo , cardElo , userScore );
441437 this .userCourseRegDoc ! .courses .find ((c ) => c .courseID === course_id )! .elo = eloUpdate .userElo ;
442438
443439 Promise .all ([
444- updateUserElo ( this .user ! .username , course_id , eloUpdate .userElo ),
445- updateCardElo (course_id , card_id , eloUpdate .cardElo ),
440+ this .user ! .updateUserElo ( course_id , eloUpdate .userElo ),
441+ courseDB . updateCardElo (card_id , eloUpdate .cardElo ),
446442 ]).then ((results ) => {
447443 const user = results [0 ];
448444 const card = results [1 ];
@@ -482,11 +478,11 @@ export default defineComponent({
482478
483479 if (isReview (item )) {
484480 console .log (` [StudySession] Removing previously scheduled review for: ${item .cardID } ` );
485- removeScheduledCardReview (this .user ! .username , item .reviewID );
481+ this . user ! . removeScheduledCardReview (this .user ! .getUsername () , item .reviewID );
486482 }
487483
488- scheduleCardReview ({
489- user: this .user ! .username ,
484+ this . user ! . scheduleCardReview ({
485+ user: this .user ! .getUsername () ,
490486 course_id: history .courseID ,
491487 card_id: history .cardID ,
492488 time: nextReviewTime ,
@@ -516,15 +512,15 @@ export default defineComponent({
516512 console .log (` [StudySession] Now displaying: ${qualified_id } ` );
517513
518514 try {
519- const tmpCardData = await getCourseDoc <CardData >(_courseID , _cardID );
515+ const tmpCardData = await this . dataLayer . getCourseDB ( _courseID ). getCourseDoc <CardData >(_cardID );
520516
521517 if (! isCourseElo (tmpCardData .elo )) {
522518 tmpCardData .elo = toCourseElo (tmpCardData .elo );
523519 }
524520
525521 const tmpView: ViewComponent = this .getViewComponent (tmpCardData .id_view );
526522 const tmpDataDocs = tmpCardData .id_displayable_data .map ((id ) => {
527- return getCourseDoc <DisplayableData >(_courseID , id , {
523+ return this . dataLayer . getCourseDB ( _courseID ). getCourseDoc <DisplayableData >(id , {
528524 attachments: true ,
529525 binary: true ,
530526 });
@@ -566,7 +562,7 @@ export default defineComponent({
566562 const err = e as Error ;
567563 if (docIsDeleted (err ) && isReview (item )) {
568564 console .warn (` Card was deleted: ${qualified_id } ` );
569- removeScheduledCardReview (this .user ! .username , item .reviewID );
565+ this . user ! . removeScheduledCardReview (this .user ! .getUsername () , item .reviewID );
570566 }
571567
572568 this .loadCard (this .sessionController ! .nextCard (' dismiss-error' ));
0 commit comments