Changeset 8496f3c for src/app/students/semesters/page.tsx
- Timestamp:
- 09/15/26 21:16:02 (8 days ago)
- Branches:
- master
- Children:
- b8093a0
- Parents:
- 4fe4582
- File:
-
- 1 edited
-
src/app/students/semesters/page.tsx (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/app/students/semesters/page.tsx
r4fe4582 r8496f3c 15 15 import { getAccessToken } from '@/lib/auth'; 16 16 import { useTranslation } from 'react-i18next'; 17 import { apiUrl } from '@/lib/api'; 18 import EnrollSemesterDialog from '@/components/enroll-semester-dialog'; 17 19 18 20 type Semester = { … … 113 115 const [isLoading, setIsLoading] = useState(true); 114 116 const [errorMessage, setErrorMessage] = useState<string | null>(null); 117 const [enrollOpen, setEnrollOpen] = useState(false); 118 // Bumped after a successful enrolment so the table reloads. 119 const [reloadKey, setReloadKey] = useState(0); 115 120 const { t } = useTranslation(); 116 121 … … 130 135 131 136 try { 132 const response = await fetch( 'https://iknow-api.onrender.com/api/user/getSemesters', {137 const response = await fetch(apiUrl('/api/user/getSemesters'), { 133 138 method: 'GET', 134 139 headers: { … … 158 163 cancelled = true; 159 164 }; 160 }, [ ]);165 }, [reloadKey]); 161 166 162 167 if (isLoading) { … … 184 189 {/* Header */} 185 190 <div className="bg-primary text-white rounded-xl p-8 mb-8"> 186 <div className="flex items-center gap-4"> 187 <div className="bg-white rounded-full p-4"> 188 <FontAwesomeIcon icon={faCalendarAlt} className="text-3xl text-[#0272D1]" /> 191 <div className="flex flex-col gap-4 md:flex-row md:items-center md:justify-between"> 192 <div className="flex items-center gap-4"> 193 <div className="bg-white rounded-full p-4"> 194 <FontAwesomeIcon icon={faCalendarAlt} className="text-3xl text-[#0272D1]" /> 195 </div> 196 <div> 197 <h1 className="text-3xl font-bold mb-2">{t('semesters')}</h1> 198 <p className="text-lg opacity-90"> 199 {t('semesters_overview')} 200 </p> 201 </div> 189 202 </div> 190 <div> 191 <h1 className="text-3xl font-bold mb-2">{t('semesters')}</h1> 192 <p className="text-lg opacity-90"> 193 {t('semesters_overview')} 194 </p> 195 </div> 203 204 <button 205 className="self-start rounded-lg bg-white px-5 py-3 font-semibold text-[#0272D1] shadow-sm hover:bg-white/90 md:self-auto" 206 onClick={() => setEnrollOpen(true)} 207 > 208 + {t('enroll_semester')} 209 </button> 196 210 </div> 197 211 </div> … … 373 387 </div> 374 388 </div> 389 390 <EnrollSemesterDialog 391 open={enrollOpen} 392 onClose={() => setEnrollOpen(false)} 393 onEnrolled={() => setReloadKey((k) => k + 1)} 394 /> 375 395 </div> 376 396 );
Note:
See TracChangeset
for help on using the changeset viewer.
