11<template >
22 <div >
3+ {{ selectedClasses }}
34 <!-- <ClassesCalendar /> -->
45 <!-- <ClassesSelectedStats /> -->
56 <ClassesFilters
910 :selectedSemstersProp =" selectedSemsters"
1011 :departments =" departments"
1112 />
12- <ClassesList :loading =" loadingClasses" :classes =" filteredClasses" />
13+ <ClassesList
14+ :loading =" loadingClasses"
15+ :classes =" filteredClasses"
16+ @class:action =" classButtonAction($event)"
17+ />
1318 <snackBar :text =" snackbarText" :active =" snackbarActive" />
1419 </div >
1520</template >
@@ -52,6 +57,7 @@ export default {
5257 selectedDepartment: null ,
5358 selectedMajor: null ,
5459 selectedSemsters: [0 ],
60+ selectedClasses: [],
5561 loadingClasses: false ,
5662 snackbarText: ' ' ,
5763 snackbarActive: false ,
@@ -63,7 +69,9 @@ export default {
6369 let filtered = this .rawClasses .filter ((c ) =>
6470 this .selectedSemsters .includes (c .semster_index )
6571 )
66- filtered = filtered .map (findConflicts)
72+ filtered = filtered .map ((clas ) =>
73+ findConflicts (clas, this .selectedClasses )
74+ )
6775 filtered = filtered .map (buttonOptions)
6876
6977 return filtered
@@ -72,7 +80,6 @@ export default {
7280 methods: {
7381 majorChange (e ) {
7482 this .selectedMajor = e .abbrv
75- this .snackbarActive = false
7683 this .getCP ()
7784 },
7885 departmentChange (e ) {
@@ -87,13 +94,23 @@ export default {
8794 this .rawClasses = response .data
8895 this .loadingClasses = false
8996 } catch (error) {
90- this .snackbarActive = true
97+ this .snackbarActive = ! this . snackbarActive
9198 this .snackbarText = ` ${ this .selectedDepartment } , ${ this .selectedMajor } Not yet supported!`
9299 this .loadingClasses = false
93100 this .rawClasses = []
94101 console .log (error) // TODO: handle error
95102 }
96103 },
104+ // If the button was pressed
105+ classButtonAction (e ) {
106+ console .log (e)
107+ if (this .selectedClasses .find ((c ) => c .crn == e .crn )) {
108+ this .snackbarActive = ! this .snackbarActive
109+ this .snackbarText = ` Already added ${ e .name } `
110+ } else {
111+ this .selectedClasses .push (e)
112+ }
113+ },
97114 },
98115}
99116 </script >
0 commit comments