mario-education 2.4.514-feedback → 2.4.516-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");
@@ -6084,7 +6083,7 @@ var useCSVImport = function useCSVImport() {
6084
6083
  setStudentDataFile = _useState5[1];
6085
6084
 
6086
6085
  var domainName = window.location.hostname;
6087
- var isCheckDomainIBS = domainName.includes('isb') || domainName.includes('stage');
6086
+ var isCheckDomainIBS = domainName.includes('isb') || domainName.includes('stage') || domainName.includes("localhost");
6088
6087
 
6089
6088
  var _useState6 = React.useState(0),
6090
6089
  defaultTeacher = _useState6[0],
@@ -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"
@@ -6160,30 +6163,85 @@ var useCSVImport = function useCSVImport() {
6160
6163
 
6161
6164
  var formData = new FormData();
6162
6165
  formData.append("file", file, file.name);
6166
+ console.log("run");
6167
+ console.log("📌 Type run:", type.toString());
6163
6168
 
6164
- var _temp7 = function () {
6169
+ var _temp8 = function () {
6165
6170
  if (type == CSVType.AllUser) {
6166
- return Promise.resolve(importUsersCSV(formData)).then(function () {});
6171
+ console.log("📌 Type 1:", type.toString());
6172
+ return Promise.resolve(file.text()).then(function (fileTextRaw) {
6173
+ var fileText = fileTextRaw.trim();
6174
+ var headerIndex = 0;
6175
+ var rows = fileText.split("\n").map(function (row) {
6176
+ return row.trim();
6177
+ });
6178
+
6179
+ for (var _i = 0; _i < rows.length; _i++) {
6180
+ var cols = rows[_i].split(",");
6181
+
6182
+ if (cols.includes("FirstName")) {
6183
+ headerIndex = _i;
6184
+ return;
6185
+ }
6186
+ }
6187
+
6188
+ if (headerIndex === 0) {
6189
+ throw new Error("Invalid CSV: Missing header row.");
6190
+ }
6191
+
6192
+ fileText = rows.slice(headerIndex).join("\n");
6193
+ var parsedData = Papa.parse(fileText, {
6194
+ header: true,
6195
+ skipEmptyLines: true
6196
+ });
6197
+ var header = parsedData.meta.fields;
6198
+ var dataRows = parsedData.data;
6199
+ var chunkSize = 20;
6200
+ var chunks = [];
6201
+
6202
+ for (var _i2 = 0; _i2 < dataRows.length; _i2 += chunkSize) {
6203
+ var chunkData = dataRows.slice(_i2, _i2 + chunkSize);
6204
+ var csvChunk = Papa.unparse({
6205
+ fields: header,
6206
+ data: chunkData
6207
+ });
6208
+ chunks.push(csvChunk);
6209
+ }
6210
+
6211
+ var _temp5 = _forTo(chunks, function (i) {
6212
+ var blob = new Blob([chunks[i]], {
6213
+ type: "text/csv"
6214
+ });
6215
+ var formData = new FormData();
6216
+ formData.append("file", blob, "students_chunk" + (i + 1) + ".csv");
6217
+ return Promise.resolve(importUsersCSV(formData)).then(function () {});
6218
+ });
6219
+
6220
+ if (_temp5 && _temp5.then) return _temp5.then(function () {});
6221
+ });
6167
6222
  } else {
6168
- var _temp13 = function () {
6223
+ var _temp14 = function () {
6169
6224
  if (isCheckDomainIBS) {
6170
- var _temp14 = function () {
6225
+ console.log("📌 Type if:", type.toString());
6226
+
6227
+ var _temp15 = function () {
6171
6228
  if (type == CSVType.ClassReflection) {
6172
6229
  return Promise.resolve(importClassReflectionCSV(formData)).then(function () {});
6173
6230
  }
6174
6231
  }();
6175
6232
 
6176
- if (_temp14 && _temp14.then) return _temp14.then(function () {});
6233
+ if (_temp15 && _temp15.then) return _temp15.then(function () {});
6177
6234
  } else {
6235
+ console.log("📌 Type else:", type.toString());
6178
6236
  return Promise.resolve(importCSV(formData, type.toString())).then(function () {});
6179
6237
  }
6180
6238
  }();
6181
6239
 
6182
- if (_temp13 && _temp13.then) return _temp13.then(function () {});
6240
+ if (_temp14 && _temp14.then) return _temp14.then(function () {});
6183
6241
  }
6184
6242
  }();
6185
6243
 
6186
- return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
6244
+ return _temp8 && _temp8.then ? _temp8.then(_temp9) : _temp9(_temp8);
6187
6245
  }, function (err) {
6188
6246
  var _err$response, _err$response$data;
6189
6247
 
@@ -6193,7 +6251,7 @@ var useCSVImport = function useCSVImport() {
6193
6251
  }));
6194
6252
  });
6195
6253
 
6196
- return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
6254
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(_temp12) : _temp12(_temp13));
6197
6255
  } catch (e) {
6198
6256
  return Promise.reject(e);
6199
6257
  }
@@ -6201,7 +6259,7 @@ var useCSVImport = function useCSVImport() {
6201
6259
 
6202
6260
  var uploadByTeacherId = function uploadByTeacherId(file) {
6203
6261
  try {
6204
- var _temp17 = function _temp17() {
6262
+ var _temp18 = function _temp18() {
6205
6263
  dispatch(marioCore.setLoading(false));
6206
6264
  var input = document.getElementById('teacherSelector');
6207
6265
  input && (input.value = "");
@@ -6218,7 +6276,7 @@ var useCSVImport = function useCSVImport() {
6218
6276
  if (!type || !file) return Promise.resolve();
6219
6277
  dispatch(marioCore.setLoading(true));
6220
6278
 
6221
- var _temp18 = _catch(function () {
6279
+ var _temp19 = _catch(function () {
6222
6280
  var formData = new FormData();
6223
6281
  formData.append("file", file, file.name);
6224
6282
  return Promise.resolve(importStudentByTeacher(defaultTeacher, formData)).then(function () {
@@ -6236,7 +6294,7 @@ var useCSVImport = function useCSVImport() {
6236
6294
  }));
6237
6295
  });
6238
6296
 
6239
- return Promise.resolve(_temp18 && _temp18.then ? _temp18.then(_temp17) : _temp17(_temp18));
6297
+ return Promise.resolve(_temp19 && _temp19.then ? _temp19.then(_temp18) : _temp18(_temp19));
6240
6298
  } catch (e) {
6241
6299
  return Promise.reject(e);
6242
6300
  }
@@ -6244,7 +6302,7 @@ var useCSVImport = function useCSVImport() {
6244
6302
 
6245
6303
  var onConfirm = function onConfirm(values) {
6246
6304
  try {
6247
- var _temp21 = function _temp21() {
6305
+ var _temp22 = function _temp22() {
6248
6306
  dispatch(marioCore.setLoading(false));
6249
6307
  var input = document.getElementById(id);
6250
6308
  input && (input.value = "");
@@ -6253,7 +6311,7 @@ var useCSVImport = function useCSVImport() {
6253
6311
  if (!dataFile || !dataFile) return Promise.resolve();
6254
6312
  dispatch(marioCore.setLoading(true));
6255
6313
 
6256
- var _temp22 = _catch(function () {
6314
+ var _temp23 = _catch(function () {
6257
6315
  var formData = new FormData();
6258
6316
  formData.append("file", dataFile, dataFile.name);
6259
6317
  formData.append("teacherName", values.teacherName);
@@ -6277,7 +6335,7 @@ var useCSVImport = function useCSVImport() {
6277
6335
  }));
6278
6336
  });
6279
6337
 
6280
- return Promise.resolve(_temp22 && _temp22.then ? _temp22.then(_temp21) : _temp21(_temp22));
6338
+ return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp22) : _temp22(_temp23));
6281
6339
  } catch (e) {
6282
6340
  return Promise.reject(e);
6283
6341
  }