@@ -20,95 +20,74 @@ const FavouritesDropdown = observer((props) => {
2020 }
2121
2222 return (
23- < div className = " mt-2 w-48 bg-white border border-solid border-black rounded-lg z-50 overflow-y-auto max-h-60" >
24- { props . favouriteCourses . length > 0 ? (
25- props . favouriteCourses . map ( course => (
26- < div
27- onClick = { ( ) => {
28- console . log ( 'Clicked:' , course ) ;
29- props . setSelectedCourse ( course ) ;
30- props . setIsPopupOpen ( true ) ;
31- } }
32- key = { course . code }
33- className = "p-2 flex justify-between items-center w-full border border-solid border-black " >
34- < p className = "text-black" > { course . name } </ p >
35- < button
36- className = "text-red-500 cursor-pointer "
37- onClick = { ( e ) => {
38- e . stopPropagation ( ) ;
39- props . removeFavourite ( course ) ;
40- } } >
41- X
42- < >
43- < div className = "fixed mt-3 w-[32rem] right-4 bg-indigo-300/75 backdrop-blur-lg border border-violet-500 rounded-lg z-20 shadow-lg flex flex-col max-h-[calc(100vh-8rem)]" >
44- { /* Header */ }
45- < div className = "sticky top-0 p-3 rounded-t-md bg-violet-500 flex justify-between items-center w-full border-b border-solid border-violet-600 font-semibold" >
46- < p className = "text-white w-1/4" > Code</ p >
47- < p className = "text-white w-1/2" > Name</ p >
48- < p className = "text-white w-1/4 text-center" > Credits</ p >
49- < div className = "w-8" > </ div >
50- </ div >
23+ < div className = "fixed mt-3 w-[32rem] right-4 bg-indigo-300/75 backdrop-blur-lg border border-violet-500 rounded-lg z-20 shadow-lg flex flex-col max-h-[calc(100vh-8rem)]" >
24+ { /* Header */ }
25+ < div className = "sticky top-0 p-3 rounded-t-md bg-violet-500 flex justify-between items-center w-full border-b border-solid border-violet-600 font-semibold" >
26+ < p className = "text-white w-1/4" > Code</ p >
27+ < p className = "text-white w-1/2" > Name</ p >
28+ < p className = "text-white w-1/4 text-center" > Credits</ p >
29+ < div className = "w-8" > </ div >
30+ </ div >
5131
52- { /* Course list */ }
53- < div className = "overflow-y-auto flex-1" >
54- { props . favouriteCourses . length > 0 ? (
55- props . favouriteCourses . map ( course => (
56- < div
57- onClick = { ( ) => {
58- props . setSelectedCourse ( course ) ;
59- props . setIsPopupOpen ( true ) ;
32+ { /* Course list */ }
33+ < div className = "overflow-y-auto flex-1" >
34+ { props . favouriteCourses . length > 0 ? (
35+ props . favouriteCourses . map ( course => (
36+ < div
37+ onClick = { ( ) => {
38+ props . setSelectedCourse ( course ) ;
39+ props . setIsPopupOpen ( true ) ;
40+ } }
41+ key = { course . code }
42+ className = "p-3 hover:bg-indigo-400/50 cursor-pointer flex justify-between items-center w-full border-b border-solid border-violet-400"
43+ >
44+ < p className = "text-violet-700 font-semibold w-1/4" > { course . code } </ p >
45+ < p className = "text-slate-900 font-semibold w-1/2" > { course . name } </ p >
46+ < p className = "text-slate-900 font-semibold w-1/4 text-center" > { course . credits } hp</ p >
47+ < button
48+ className = "text-violet-700 hover:text-red-500 cursor-pointer w-8 text-center font-bold"
49+ onClick = { ( e ) => {
50+ e . stopPropagation ( ) ;
51+ props . removeFavourite ( course ) ;
6052 } }
61- key = { course . code }
62- className = "p-3 hover:bg-indigo-400/50 cursor-pointer flex justify-between items-center w-full border-b border-solid border-violet-400"
6353 >
64- < p className = "text-violet-700 font-semibold w-1/4" > { course . code } </ p >
65- < p className = "text-slate-900 font-semibold w-1/2" > { course . name } </ p >
66- < p className = "text-slate-900 font-semibold w-1/4 text-center" > { course . credits } hp</ p >
67- < button
68- className = "text-violet-700 hover:text-red-500 cursor-pointer w-8 text-center font-bold"
69- onClick = { ( e ) => {
70- e . stopPropagation ( ) ;
71- props . removeFavourite ( course ) ;
72- } }
73- >
74- ×
75- </ button >
76- </ div >
77- ) )
78- ) : (
79- < div className = "p-3 text-slate-900 font-semibold" >
80- No favourites
54+ ×
55+ </ button >
8156 </ div >
82- ) }
83- </ div >
84-
85- { /* Footer */ }
86- < div className = "sticky bottom-0 border-t border-solid border-violet-400 bg-indigo-300/75 backdrop-blur-lg" >
87- < div className = 'p-3 flex justify-between items-center bg-violet-400/30' >
88- < p className = 'text-slate-900 font-bold w-1/2' > Total:</ p >
89- < p className = 'text-slate-900 font-bold w-1/4' > </ p >
90- < p className = 'text-slate-900 font-bold w-1/4 text-center' > { props . totalCredits } hp</ p >
91- < div className = "w-8" > </ div >
57+ ) )
58+ ) : (
59+ < div className = "p-3 text-slate-900 font-semibold" >
60+ No favourites
9261 </ div >
62+ ) }
63+ </ div >
9364
94- < div className = "flex border-t border-solid border-violet-400" >
95- { props . favouriteCourses . length > 0 && (
96- < >
97- < button
98- onClick = { props . removeAllFavourites }
99- className = "w-1/2 p-3 cursor-pointer text-red-600 hover:bg-red-600 hover:text-white border-r border-solid border-violet-400 font-semibold transition-colors"
100- >
101- Clear All
102- </ button >
103- < button
104- onClick = { handleShareCourses }
105- className = "w-1/2 p-3 cursor-pointer text-violet-700 hover:bg-blue-500 hover:text-white flex items-center justify-center gap-2 font-semibold"
106- >
107- Share Courses
108- </ button >
109- </ >
110- ) }
111- </ div >
65+ { /* Footer */ }
66+ < div className = "sticky bottom-0 border-t border-solid border-violet-400 bg-indigo-300/75 backdrop-blur-lg" >
67+ < div className = 'p-3 flex justify-between items-center bg-violet-400/30' >
68+ < p className = 'text-slate-900 font-bold w-1/2' > Total:</ p >
69+ < p className = 'text-slate-900 font-bold w-1/4' > </ p >
70+ < p className = 'text-slate-900 font-bold w-1/4 text-center' > { props . totalCredits } hp</ p >
71+ < div className = "w-8" > </ div >
72+ </ div >
73+
74+ < div className = "flex border-t border-solid border-violet-400" >
75+ { props . favouriteCourses . length > 0 && (
76+ < >
77+ < button
78+ onClick = { props . removeAllFavourites }
79+ className = "w-1/2 p-3 cursor-pointer text-red-600 hover:bg-red-600 hover:text-white border-r border-solid border-violet-400 font-semibold transition-colors"
80+ >
81+ Clear All
82+ </ button >
83+ < button
84+ onClick = { handleShareCourses }
85+ className = "w-1/2 p-3 cursor-pointer text-violet-700 hover:bg-blue-500 hover:text-white flex items-center justify-center gap-2 font-semibold"
86+ >
87+ Share Courses
88+ </ button >
89+ </ >
90+ ) }
11291 </ div >
11392 </ div >
11493
@@ -132,22 +111,13 @@ const FavouritesDropdown = observer((props) => {
132111 </ div >
133112 </ div >
134113 ) }
114+
115+ { /* Optional course popup */ }
135116 < div className = "relative z-100" >
136117 { props . isPopupOpen && props . popup }
137118 </ div >
138- { props . favouriteCourses . length > 0 && (
139- < button
140- onClick = { props . removeAllFavourites }
141- className = "mt-2 text-red-500 " >
142- Clear Favourites
143- </ button >
144- ) }
145119 </ div >
146-
147- { /* Optional course popup */ }
148- { props . isPopupOpen && props . popup }
149- </ >
150120 ) ;
151121} ) ;
152122
153- export default FavouritesDropdown ;
123+ export default FavouritesDropdown ;
0 commit comments