@@ -4,13 +4,13 @@ import Lottie from 'lottie-react';
44import animationData from '../assets/95241-uploading.json' ;
55import { Link } from 'react-router-dom' ;
66
7- function Uploadnote ( { moduleNumber } ) {
7+ function Uploadn ( { moduleNumber } ) {
88 const [ numNotes , setNumNotes ] = useState ( 0 ) ;
99 const [ selectedFiles , setSelectedFiles ] = useState ( [ ] ) ;
1010 const [ uploading , setUploading ] = useState ( false ) ;
1111 const [ uploadSuccess , setUploadSuccess ] = useState ( false ) ;
1212 const [ showSuccessMessage , setShowSuccessMessage ] = useState ( false ) ;
13- const [ fadeOut , setFadeOut ] = useState ( false ) ; // New state to control fading out
13+ const [ fadeOut , setFadeOut ] = useState ( false ) ;
1414
1515 const handleNumNotesChange = ( event ) => {
1616 const count = parseInt ( event . target . value , 10 ) ;
@@ -19,12 +19,35 @@ function Uploadnote({ moduleNumber }) {
1919 setUploadSuccess ( false ) ;
2020 } ;
2121
22- const handleFileChange = ( index , event ) => {
22+ const handleFileChange = async ( index , event ) => {
2323 const file = event . target . files [ 0 ] ;
2424 const updatedFiles = [ ...selectedFiles ] ;
2525 updatedFiles [ index ] = file ;
2626 setSelectedFiles ( updatedFiles ) ;
2727 setUploadSuccess ( false ) ;
28+
29+ try {
30+ const formData = new FormData ( ) ;
31+ formData . append ( 'files' , file ) ;
32+
33+ const response = await fetch ( 'https://3f2ssd7loqowjtj7hnzhni7trq0blutk.lambda-url.us-east-1.on.aws/notestotext_modwise' , {
34+ method : 'POST' ,
35+ body : formData ,
36+ } ) ;
37+
38+ if ( response . ok ) {
39+ setUploadSuccess ( true ) ;
40+ setShowSuccessMessage ( true ) ;
41+ setTimeout ( ( ) => {
42+ setShowSuccessMessage ( false ) ;
43+ setFadeOut ( true ) ;
44+ } , 10000 ) ;
45+ } else {
46+ throw new Error ( 'Error uploading file' ) ;
47+ }
48+ } catch ( error ) {
49+ console . error ( 'Error uploading file:' , error ) ;
50+ }
2851 } ;
2952
3053 const handleUpload = ( ) => {
@@ -65,20 +88,20 @@ function Uploadnote({ moduleNumber }) {
6588
6689 const saveFileLocally = ( filePath , file ) => {
6790 return new Promise ( ( resolve , reject ) => {
68- const virtualLink = document . createElement ( 'a' ) ;
69- virtualLink . href = URL . createObjectURL ( file ) ;
70- virtualLink . download = filePath ;
71- virtualLink . addEventListener ( 'load' , ( ) => {
72- URL . revokeObjectURL ( virtualLink . href ) ;
73- resolve ( ) ;
74- } ) ;
75- virtualLink . addEventListener ( 'error' , ( error ) => {
76- reject ( error ) ;
77- } ) ;
78- document . body . appendChild ( virtualLink ) ;
79- virtualLink . click ( ) ;
80- document . body . removeChild ( virtualLink ) ;
91+ const virtualLink = document . createElement ( 'a' ) ;
92+ virtualLink . href = URL . createObjectURL ( file ) ;
93+ virtualLink . download = filePath ;
94+ virtualLink . addEventListener ( 'load' , ( ) => {
95+ URL . revokeObjectURL ( virtualLink . href ) ;
96+ resolve ( ) ;
97+ } ) ;
98+ virtualLink . addEventListener ( 'error' , ( error ) => {
99+ reject ( error ) ;
81100 } ) ;
101+ document . body . appendChild ( virtualLink ) ;
102+ virtualLink . click ( ) ;
103+ document . body . removeChild ( virtualLink ) ;
104+ } ) ;
82105 } ;
83106
84107 const handleUploadAnother = ( ) => {
@@ -88,6 +111,20 @@ function Uploadnote({ moduleNumber }) {
88111 setFadeOut ( false ) ;
89112 } ;
90113
114+ const handleFinish = ( ) => {
115+ fetch ( 'https://3f2ssd7loqowjtj7hnzhni7trq0blutk.lambda-url.us-east-1.on.aws/notestotext' )
116+ . then ( ( response ) => {
117+ if ( response . ok ) {
118+ // Handle successful response
119+ } else {
120+ throw new Error ( 'Error requesting data' ) ;
121+ }
122+ } )
123+ . catch ( ( error ) => {
124+ console . error ( 'Error requesting data:' , error ) ;
125+ } ) ;
126+ } ;
127+
91128 const renderUploadInputs = ( ) => {
92129 const inputs = [ ] ;
93130
@@ -144,18 +181,14 @@ function Uploadnote({ moduleNumber }) {
144181 >
145182 { uploading ? 'Uploaded' : 'Upload' }
146183 </ motion . button >
147- < Link to = "/uploadpyq " className = "bg-green-500 text-white py-2 ml-4 px-6 mt-4 rounded-lg" >
184+ < Link to = "/uploadp " className = "bg-green-500 text-white py-2 ml-4 px-6 mt-4 rounded-lg" >
148185 Next
149186 </ Link >
150187 </ >
151188 ) : (
152189 < >
153190 { showSuccessMessage && (
154- < motion . div
155- className = "text-xl"
156- initial = { { opacity : 0 } }
157- animate = { { opacity : 1 } }
158- >
191+ < motion . div className = "text-xl" initial = { { opacity : 0 } } animate = { { opacity : 1 } } >
159192 Successfully Uploaded!
160193 </ motion . div >
161194 ) }
@@ -165,9 +198,12 @@ function Uploadnote({ moduleNumber }) {
165198 >
166199 Upload Another
167200 </ motion . button >
168- < Link to = "/uploadpyq " className = "text-blue-500 mt-8" >
201+ < Link to = "/uploadp " className = "text-blue-500 mt-8" >
169202 Next
170203 </ Link >
204+ < button className = "text-blue-500 mt-8" onClick = { handleFinish } >
205+ Finish
206+ </ button >
171207 </ >
172208 ) }
173209 </ motion . div >
@@ -176,4 +212,4 @@ function Uploadnote({ moduleNumber }) {
176212 ) ;
177213}
178214
179- export default Uploadnote ;
215+ export default Uploadn ;
0 commit comments