@@ -9,12 +9,19 @@ import {
99 isDegreeProgressReport ,
1010} from "../utils/extract-pdf-text" ;
1111import { parseCourseHistory } from "../utils/parse-course-history" ;
12+ import {
13+ extractStartingTerm ,
14+ type StartingTerm ,
15+ } from "../utils/parse-starting-term" ;
1216import { transformToUserCourses } from "../utils/transform-to-user-courses" ;
1317import ConfirmModal from "./confirm-modal" ;
1418
1519type FileUploadButtonProps = {
1620 maxSizeMB ?: number ;
17- onConfirm : ( courses : UserCourse [ ] ) => Promise < void > | void ;
21+ onConfirm : (
22+ courses : UserCourse [ ] ,
23+ startingTerm : StartingTerm | null ,
24+ ) => Promise < void > | void ;
1825 showFileLoaded ?: boolean ;
1926 onFileClick ?: ( ) => void ;
2027} ;
@@ -27,6 +34,7 @@ export default function DegreeProgreeUpload({
2734} : FileUploadButtonProps ) {
2835 const maxSize = maxSizeMB * 1024 * 1024 ;
2936 const [ parsedCourses , setParsedCourses ] = useState < UserCourse [ ] > ( [ ] ) ;
37+ const [ startingTerm , setStartingTerm ] = useState < StartingTerm | null > ( null ) ;
3038 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
3139 const [ isImporting , setIsImporting ] = useState ( false ) ;
3240 const [ fileName , setFileName ] = useState ( "" ) ;
@@ -51,6 +59,8 @@ export default function DegreeProgreeUpload({
5159 const file = fileData . file ;
5260 if ( ! ( file instanceof File ) ) return ;
5361
62+ setStartingTerm ( null ) ;
63+
5464 // Verify it's a Degree Progress Report
5565 try {
5666 const ok = await isDegreeProgressReport ( file ) ;
@@ -59,6 +69,15 @@ export default function DegreeProgreeUpload({
5969 removeFile ( fileData . id ) ;
6070 return ;
6171 }
72+
73+ try {
74+ const startingTerm = await extractStartingTerm ( file ) ;
75+ console . log ( startingTerm ) ;
76+
77+ setStartingTerm ( startingTerm ) ;
78+ } catch ( e ) {
79+ console . warn ( "Could not find starting term:" , e ) ;
80+ }
6281 } catch ( err ) {
6382 console . error ( "Error verifying PDF:" , err ) ;
6483 toast . error ( "Could not verify the PDF file." ) ;
@@ -85,7 +104,7 @@ export default function DegreeProgreeUpload({
85104 const handleConfirm = async ( ) => {
86105 setIsImporting ( true ) ;
87106 try {
88- await onConfirm ( parsedCourses ) ;
107+ await onConfirm ( parsedCourses , startingTerm ) ;
89108
90109 setIsModalOpen ( false ) ;
91110
0 commit comments