diff --git a/src/roles/teacher/manage_students/hooks/useStudents.jsx b/src/roles/teacher/manage_students/hooks/useStudents.jsx index a674a85..57f25e6 100644 --- a/src/roles/teacher/manage_students/hooks/useStudents.jsx +++ b/src/roles/teacher/manage_students/hooks/useStudents.jsx @@ -22,6 +22,7 @@ const useStudents = () => { const [loaderState, setLoaderState] = useState({ loading: false, successMessage: '', title: '', description: '', confirmAction: false }); const resetForm = () =>{ + setFileImport(null); setFormData({ fullName: '', nisn: '', @@ -41,15 +42,19 @@ const useStudents = () => { }; const createdStudent = await studentService.createData(newStudent); setStudents((prevStudents) => [...prevStudents, createdStudent.payload]); - } catch (err) { - setError(err); - }finally{ resetForm(); setLoaderState(prev => ({ ...prev, loading: false, successMessage: 'Your new entry has been successfully created and saved.' })); + } catch (err) { + setLoaderState(prev => ({ + ...prev, + title: "ERROR", + loading: false, + successMessage: err.response.data.message + })); } }; @@ -60,16 +65,19 @@ const useStudents = () => { console.log(file); try { const response = await studentService.registerImport(fileData); - console.log(response.data); - } catch (err) { - setError(err); - }finally{ - resetForm(); setLoaderState(prev => ({ ...prev, loading: false, successMessage: 'Your new entry has been successfully created and saved.' })); + resetForm(); + } catch (err) { + setLoaderState(prev => ({ + ...prev, + title: "ERROR", + loading: false, + successMessage: err.response.data.message + })); } } @@ -83,14 +91,18 @@ const useStudents = () => { setStudents((prevStudents) => prevStudents.map((s) => (s.ID === id ? student.payload : s)) ); - } catch (err) { - setError(err); - }finally{ setLoaderState(prev => ({ ...prev, loading: false, successMessage: 'Your data has been successfully updated.' })); + } catch (err) { + setLoaderState(prev => ({ + ...prev, + title: "ERROR", + loading: false, + successMessage: err.response.data.message + })); } }; @@ -98,15 +110,19 @@ const useStudents = () => { handleShowLoader('Deleted', '', true) try { await studentService.deleteData(id); - } catch (err) { - setError(err); - }finally{ setStudents((prevStudents) => prevStudents.filter((s) => s.ID !== id)); setLoaderState(prev => ({ ...prev, loading: false, successMessage: 'Your data has been successfully deleted.' })); + } catch (err) { + setLoaderState(prev => ({ + ...prev, + title: "ERROR", + loading: false, + successMessage: err.response.data.message + })); } }; @@ -175,22 +191,23 @@ const useStudents = () => { }, [page, limit]); - const handleDownloadTemplate = async () => {try { - const response = await studentService.getTemplate(); - - const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); - const downloadUrl = URL.createObjectURL(blob); - - const link = document.createElement('a'); - link.href = downloadUrl; - link.download = 'template.xls'; - link.click(); - - URL.revokeObjectURL(downloadUrl); - } catch (error) { - console.error('Error downloading file:', error); - alert('Gagal mengunduh file'); - } + const handleDownloadTemplate = async () => { + try { + const response = await studentService.getTemplate(); + + const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); + const downloadUrl = URL.createObjectURL(blob); + + const link = document.createElement('a'); + link.href = downloadUrl; + link.download = 'template.xlsx'; + link.click(); + + URL.revokeObjectURL(downloadUrl); + } catch (error) { + console.error('Error downloading file:', error); + alert('Gagal mengunduh file'); + } } return { diff --git a/src/roles/teacher/manage_students/views/ManageStudents.jsx b/src/roles/teacher/manage_students/views/ManageStudents.jsx index 0f4a02b..86358da 100644 --- a/src/roles/teacher/manage_students/views/ManageStudents.jsx +++ b/src/roles/teacher/manage_students/views/ManageStudents.jsx @@ -377,7 +377,7 @@ const ManageStudents = () => { onDragLeave={handleDragLeave} >
{fileImport ? fileImport.name : "Upload Excel file here"}
- {fileImport ? "Your file is ready to import" : "Please make sure your Excel file follows the template."} + {fileImport ? "Your file is ready to import" : "Please make sure your Excel file follows the template.(*.xlsx)"}