mario-education 2.4.514-feedback → 2.4.515-feedback

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ var formik = require('formik');
10
10
  var yup = require('yup');
11
11
  var reactRouterDom = require('react-router-dom');
12
12
  var ai = require('react-icons/ai');
13
+ var Papa = _interopDefault(require('papaparse'));
13
14
  var DatePicker = _interopDefault(require('react-datepicker'));
14
15
  var format = _interopDefault(require('date-fns/format'));
15
16
  var react = require('@ag-grid-community/react');
@@ -6018,9 +6019,7 @@ var importStudentByTeacher = function importStudentByTeacher(teacherId, formData
6018
6019
  return marioCore.apiUpload.post(CSV_FILE_TEACHER + "/adminImportStudentByTeacherId/" + teacherId, formData);
6019
6020
  };
6020
6021
  var importUsersCSV = function importUsersCSV(formData) {
6021
- return marioCore.apiUpload.post(CSV_FILE_TEACHER + "/adminImport", formData, {
6022
- timeout: 400000
6023
- });
6022
+ return marioCore.apiUpload.post(CSV_FILE_TEACHER + "/adminImport", formData);
6024
6023
  };
6025
6024
  var downloadTemplateFileUser = function downloadTemplateFileUser() {
6026
6025
  return marioCore.api.get(CSV_FILE_TEACHER + "/download-template-file-user");
@@ -6137,7 +6136,10 @@ var useCSVImport = function useCSVImport() {
6137
6136
 
6138
6137
  var upload = React.useCallback(function (file) {
6139
6138
  try {
6140
- var _temp11 = function _temp11() {
6139
+ var _exit2 = false;
6140
+
6141
+ var _temp12 = function _temp12(_result2) {
6142
+ if (_exit2) return _result2;
6141
6143
  dispatch(marioCore.setLoading(false));
6142
6144
  var inputId = document.getElementById(id);
6143
6145
  var input = document.getElementById('import-student');
@@ -6150,8 +6152,9 @@ var useCSVImport = function useCSVImport() {
6150
6152
  if (!type || !file) return Promise.resolve();
6151
6153
  dispatch(marioCore.setLoading(true));
6152
6154
 
6153
- var _temp12 = _catch(function () {
6154
- function _temp8() {
6155
+ var _temp13 = _catch(function () {
6156
+ function _temp9(_result) {
6157
+ if (_exit2) return _result;
6155
6158
  dispatch(marioCore.setAlert({
6156
6159
  type: "success",
6157
6160
  message: "Import CSV successfully"
@@ -6161,29 +6164,79 @@ var useCSVImport = function useCSVImport() {
6161
6164
  var formData = new FormData();
6162
6165
  formData.append("file", file, file.name);
6163
6166
 
6164
- var _temp7 = function () {
6167
+ var _temp8 = function () {
6165
6168
  if (type == CSVType.AllUser) {
6166
- return Promise.resolve(importUsersCSV(formData)).then(function () {});
6169
+ return Promise.resolve(file.text()).then(function (fileTextRaw) {
6170
+ var fileText = fileTextRaw.trim();
6171
+ var headerIndex = 0;
6172
+ var rows = fileText.split("\n").map(function (row) {
6173
+ return row.trim();
6174
+ });
6175
+
6176
+ for (var _i = 0; _i < rows.length; _i++) {
6177
+ var cols = rows[_i].split(",");
6178
+
6179
+ if (cols.includes("FirstName")) {
6180
+ headerIndex = _i;
6181
+ return;
6182
+ }
6183
+ }
6184
+
6185
+ if (headerIndex === 0) {
6186
+ throw new Error("Invalid CSV: Missing header row.");
6187
+ }
6188
+
6189
+ fileText = rows.slice(headerIndex).join("\n");
6190
+ var parsedData = Papa.parse(fileText, {
6191
+ header: true,
6192
+ skipEmptyLines: true
6193
+ });
6194
+ var header = parsedData.meta.fields;
6195
+ console.log("📌 CSV Header:", header);
6196
+ var dataRows = parsedData.data;
6197
+ var chunkSize = 20;
6198
+ var chunks = [];
6199
+
6200
+ for (var _i2 = 0; _i2 < dataRows.length; _i2 += chunkSize) {
6201
+ var chunkData = dataRows.slice(_i2, _i2 + chunkSize);
6202
+ var csvChunk = Papa.unparse({
6203
+ fields: header,
6204
+ data: chunkData
6205
+ });
6206
+ chunks.push(csvChunk);
6207
+ }
6208
+
6209
+ var _temp5 = _forTo(chunks, function (i) {
6210
+ var blob = new Blob([chunks[i]], {
6211
+ type: "text/csv"
6212
+ });
6213
+ var formData = new FormData();
6214
+ formData.append("file", blob, "students_chunk" + (i + 1) + ".csv");
6215
+ return Promise.resolve(importUsersCSV(formData)).then(function () {});
6216
+ });
6217
+
6218
+ if (_temp5 && _temp5.then) return _temp5.then(function () {});
6219
+ });
6167
6220
  } else {
6168
- var _temp13 = function () {
6221
+ var _temp14 = function () {
6169
6222
  if (isCheckDomainIBS) {
6170
- var _temp14 = function () {
6223
+ var _temp15 = function () {
6171
6224
  if (type == CSVType.ClassReflection) {
6172
6225
  return Promise.resolve(importClassReflectionCSV(formData)).then(function () {});
6173
6226
  }
6174
6227
  }();
6175
6228
 
6176
- if (_temp14 && _temp14.then) return _temp14.then(function () {});
6229
+ if (_temp15 && _temp15.then) return _temp15.then(function () {});
6177
6230
  } else {
6178
6231
  return Promise.resolve(importCSV(formData, type.toString())).then(function () {});
6179
6232
  }
6180
6233
  }();
6181
6234
 
6182
- if (_temp13 && _temp13.then) return _temp13.then(function () {});
6235
+ if (_temp14 && _temp14.then) return _temp14.then(function () {});
6183
6236
  }
6184
6237
  }();
6185
6238
 
6186
- return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
6239
+ return _temp8 && _temp8.then ? _temp8.then(_temp9) : _temp9(_temp8);
6187
6240
  }, function (err) {
6188
6241
  var _err$response, _err$response$data;
6189
6242
 
@@ -6193,7 +6246,7 @@ var useCSVImport = function useCSVImport() {
6193
6246
  }));
6194
6247
  });
6195
6248
 
6196
- return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
6249
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(_temp12) : _temp12(_temp13));
6197
6250
  } catch (e) {
6198
6251
  return Promise.reject(e);
6199
6252
  }
@@ -6201,7 +6254,7 @@ var useCSVImport = function useCSVImport() {
6201
6254
 
6202
6255
  var uploadByTeacherId = function uploadByTeacherId(file) {
6203
6256
  try {
6204
- var _temp17 = function _temp17() {
6257
+ var _temp18 = function _temp18() {
6205
6258
  dispatch(marioCore.setLoading(false));
6206
6259
  var input = document.getElementById('teacherSelector');
6207
6260
  input && (input.value = "");
@@ -6218,7 +6271,7 @@ var useCSVImport = function useCSVImport() {
6218
6271
  if (!type || !file) return Promise.resolve();
6219
6272
  dispatch(marioCore.setLoading(true));
6220
6273
 
6221
- var _temp18 = _catch(function () {
6274
+ var _temp19 = _catch(function () {
6222
6275
  var formData = new FormData();
6223
6276
  formData.append("file", file, file.name);
6224
6277
  return Promise.resolve(importStudentByTeacher(defaultTeacher, formData)).then(function () {
@@ -6236,7 +6289,7 @@ var useCSVImport = function useCSVImport() {
6236
6289
  }));
6237
6290
  });
6238
6291
 
6239
- return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
6292
+ return Promise.resolve(_temp19 && _temp19.then ? _temp19.then(_temp18) : _temp18(_temp19));
6240
6293
  } catch (e) {
6241
6294
  return Promise.reject(e);
6242
6295
  }
@@ -6244,7 +6297,7 @@ var useCSVImport = function useCSVImport() {
6244
6297
 
6245
6298
  var onConfirm = function onConfirm(values) {
6246
6299
  try {
6247
- var _temp21 = function _temp21() {
6300
+ var _temp22 = function _temp22() {
6248
6301
  dispatch(marioCore.setLoading(false));
6249
6302
  var input = document.getElementById(id);
6250
6303
  input && (input.value = "");
@@ -6253,7 +6306,7 @@ var useCSVImport = function useCSVImport() {
6253
6306
  if (!dataFile || !dataFile) return Promise.resolve();
6254
6307
  dispatch(marioCore.setLoading(true));
6255
6308
 
6256
- var _temp22 = _catch(function () {
6309
+ var _temp23 = _catch(function () {
6257
6310
  var formData = new FormData();
6258
6311
  formData.append("file", dataFile, dataFile.name);
6259
6312
  formData.append("teacherName", values.teacherName);
@@ -6277,7 +6330,7 @@ var useCSVImport = function useCSVImport() {
6277
6330
  }));
6278
6331
  });
6279
6332
 
6280
- return Promise.resolve(_temp22 && _temp22.then ? _temp22.then(_temp21) : _temp21(_temp22));
6333
+ return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp22) : _temp22(_temp23));
6281
6334
  } catch (e) {
6282
6335
  return Promise.reject(e);
6283
6336
  }