touchstudy-core 0.1.68 → 0.1.69

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.
@@ -1740,7 +1740,7 @@ var formatTime = (function (time, ORIGINAL_FORMAT, FORMAT) {
1740
1740
  var diffFromNow = (function (time, unitOfTime, targetTime) {
1741
1741
  if (time === DATE_MIN_VALUE || targetTime === DATE_MIN_VALUE) return 0;
1742
1742
  try {
1743
- var now = !!targetTime ? moment() : moment.utc(targetTime).local();
1743
+ var now = !targetTime ? moment() : moment.utc(targetTime).local();
1744
1744
  return now.diff(moment.utc(time).local(), unitOfTime);
1745
1745
  } catch (_unused) {
1746
1746
  return "";
@@ -2516,9 +2516,21 @@ var number_of_correct_answers = "정답 수";
2516
2516
  var total_solve_time = "총 풀이 시간";
2517
2517
  var number_of_answer = "{{ number }} 개";
2518
2518
  var time_comparison = "시간 비교";
2519
+ var import_student_exam_results = "학생 시험 결과 가져오기";
2520
+ var file_required = "파일이 필요합니다";
2521
+ var exam_required = "시험이 필요합니다";
2522
+ var teacher_required = "선생님은 필수입니다";
2519
2523
  var total_users = "총 사용자";
2520
2524
  var added_date = "추가된 날짜";
2525
+ var sync_exam_results = "시험 결과 동기화";
2521
2526
  var update_data_fail = "데이터 업데이트 실패";
2527
+ var are_you_sure_to_sync_exam_results_to_academy = "시험 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까(백그라운드에서 실행되며 시간이 다소 소요됨)";
2528
+ var messages = {
2529
+ exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다"
2530
+ };
2531
+ var submit = "제출하다";
2532
+ var must_select_a_teacher_first = "먼저 교사를 선택해야 합니다";
2533
+ var student_grade_is_invalid = "학생 등급은 1에서 12 사이여야 합니다";
2522
2534
  var lang_ko = {
2523
2535
  problem_solving: problem_solving,
2524
2536
  my_story: my_story,
@@ -3171,9 +3183,19 @@ var lang_ko = {
3171
3183
  total_solve_time: total_solve_time,
3172
3184
  number_of_answer: number_of_answer,
3173
3185
  time_comparison: time_comparison,
3186
+ import_student_exam_results: import_student_exam_results,
3187
+ file_required: file_required,
3188
+ exam_required: exam_required,
3189
+ teacher_required: teacher_required,
3174
3190
  total_users: total_users,
3175
3191
  added_date: added_date,
3176
- update_data_fail: update_data_fail
3192
+ sync_exam_results: sync_exam_results,
3193
+ update_data_fail: update_data_fail,
3194
+ are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy,
3195
+ messages: messages,
3196
+ submit: submit,
3197
+ must_select_a_teacher_first: must_select_a_teacher_first,
3198
+ student_grade_is_invalid: student_grade_is_invalid
3177
3199
  };
3178
3200
 
3179
3201
  var problem_solving$1 = "Problem Solving";
@@ -3832,9 +3854,21 @@ var number_of_correct_answers$1 = "Number of correct answers";
3832
3854
  var total_solve_time$1 = "Total solve time";
3833
3855
  var number_of_answer$1 = "{{ number }}";
3834
3856
  var time_comparison$1 = "Time comparison";
3857
+ var import_student_exam_results$1 = "Import Student Exam Results";
3858
+ var file_required$1 = "File is required";
3859
+ var exam_required$1 = "Exam is required";
3860
+ var teacher_required$1 = "Teacher is required";
3835
3861
  var total_users$1 = "Total users";
3836
3862
  var added_date$1 = "Added date";
3863
+ var sync_exam_results$1 = "Sync exam results";
3837
3864
  var update_data_fail$1 = "Update data fail";
3865
+ var are_you_sure_to_sync_exam_results_to_academy$1 = "Are you sure to sync exam results to academy \"{{ academyName }}\" (it will run in the background and take a while)";
3866
+ var messages$1 = {
3867
+ exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized"
3868
+ };
3869
+ var submit$1 = "Submit";
3870
+ var must_select_a_teacher_first$1 = "Must select a teacher first";
3871
+ var student_grade_is_invalid$1 = "Student grade must be from 1 to 12";
3838
3872
  var lang_en = {
3839
3873
  problem_solving: problem_solving$1,
3840
3874
  my_story: my_story$1,
@@ -4487,9 +4521,19 @@ var lang_en = {
4487
4521
  total_solve_time: total_solve_time$1,
4488
4522
  number_of_answer: number_of_answer$1,
4489
4523
  time_comparison: time_comparison$1,
4524
+ import_student_exam_results: import_student_exam_results$1,
4525
+ file_required: file_required$1,
4526
+ exam_required: exam_required$1,
4527
+ teacher_required: teacher_required$1,
4490
4528
  total_users: total_users$1,
4491
4529
  added_date: added_date$1,
4492
- update_data_fail: update_data_fail$1
4530
+ sync_exam_results: sync_exam_results$1,
4531
+ update_data_fail: update_data_fail$1,
4532
+ are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy$1,
4533
+ messages: messages$1,
4534
+ submit: submit$1,
4535
+ must_select_a_teacher_first: must_select_a_teacher_first$1,
4536
+ student_grade_is_invalid: student_grade_is_invalid$1
4493
4537
  };
4494
4538
 
4495
4539
  i18n.use(initReactI18next).init({
@@ -10347,9 +10391,6 @@ var getResultsCategoriesTeacher = function getResultsCategoriesTeacher(id, stude
10347
10391
  var createConversationApi = function createConversationApi(data) {
10348
10392
  return api.post(BASE_URL + "/api/conversation", data);
10349
10393
  };
10350
- var getCheckStatusExam = function getCheckStatusExam(examCode) {
10351
- return api.get(EXAM_SESSION_URL + "/" + examCode + "/status");
10352
- };
10353
10394
 
10354
10395
  var toNumberOrder = function toNumberOrder(value) {
10355
10396
  return "The " + value + (value % 10 === 1 ? 'st' : value % 10 === 2 ? 'nd' : value % 10 === 3 ? 'rd' : 'th');
@@ -11197,72 +11238,51 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11197
11238
  t = _useTranslation.t;
11198
11239
  var getStudentData = function getStudentData(examCode) {
11199
11240
  try {
11200
- var _temp4 = function _temp4() {
11201
- function _temp2() {
11202
- dispatch(setLoading(false));
11203
- }
11204
- var _temp = _catch(function () {
11205
- return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11206
- var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
11207
- handleChangeTab(0);
11208
- setDataChartIndex(0);
11209
- setResultData((_result$0$data = result[0].data) === null || _result$0$data === void 0 ? void 0 : _result$0$data.data);
11210
- setLongTimeSpend((_result$1$data = result[1].data) === null || _result$1$data === void 0 ? void 0 : _result$1$data.data);
11211
- setEffectSize((_result$2$data = result[2].data) === null || _result$2$data === void 0 ? void 0 : _result$2$data.data);
11212
- setTimelyOrderQuestions((_result$3$data = result[3].data) === null || _result$3$data === void 0 ? void 0 : _result$3$data.data);
11213
- setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
11214
- });
11215
- }, function (error) {
11216
- toast.error(getErrorMessage(t, error));
11217
- });
11218
- return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
11241
+ var _temp2 = function _temp2() {
11242
+ dispatch(setLoading(false));
11219
11243
  };
11220
11244
  if (!examCode) return Promise.resolve();
11221
- dispatch(setLoading(true));
11222
- var _temp3 = _catch(function () {
11223
- return Promise.resolve(getCheckStatusExam(examCode)).then(function () {});
11224
- }, function (error) {
11225
- console.log({
11226
- error: error
11245
+ var _temp = _catch(function () {
11246
+ return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11247
+ var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
11248
+ handleChangeTab(0);
11249
+ setDataChartIndex(0);
11250
+ setResultData((_result$0$data = result[0].data) === null || _result$0$data === void 0 ? void 0 : _result$0$data.data);
11251
+ setLongTimeSpend((_result$1$data = result[1].data) === null || _result$1$data === void 0 ? void 0 : _result$1$data.data);
11252
+ setEffectSize((_result$2$data = result[2].data) === null || _result$2$data === void 0 ? void 0 : _result$2$data.data);
11253
+ setTimelyOrderQuestions((_result$3$data = result[3].data) === null || _result$3$data === void 0 ? void 0 : _result$3$data.data);
11254
+ setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
11227
11255
  });
11256
+ }, function (error) {
11257
+ toast.error(getErrorMessage(t, error));
11228
11258
  });
11229
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11259
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11230
11260
  } catch (e) {
11231
11261
  return Promise.reject(e);
11232
11262
  }
11233
11263
  };
11234
11264
  var getStudentDataByTeacher = function getStudentDataByTeacher(examCode, examSessionId, studentId) {
11235
11265
  try {
11236
- var _temp8 = function _temp8() {
11237
- function _temp6() {
11238
- dispatch(setLoading(false));
11239
- }
11240
- var _temp5 = _catch(function () {
11241
- return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11242
- var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11243
- handleChangeTab(0);
11244
- setDataChartIndex(0);
11245
- setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
11246
- setLongTimeSpend((_result$1$data2 = result[1].data) === null || _result$1$data2 === void 0 ? void 0 : _result$1$data2.data);
11247
- setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11248
- setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11249
- setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
11250
- });
11251
- }, function (error) {
11252
- toast.error(getErrorMessage(t, error));
11253
- });
11254
- return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
11266
+ var _temp4 = function _temp4() {
11267
+ dispatch(setLoading(false));
11255
11268
  };
11256
11269
  if (!examCode || !examSessionId || !studentId) return Promise.resolve();
11257
11270
  dispatch(setLoading(true));
11258
- var _temp7 = _catch(function () {
11259
- return Promise.resolve(getCheckStatusExam(examCode)).then(function () {});
11260
- }, function (error) {
11261
- console.log({
11262
- error: error
11271
+ var _temp3 = _catch(function () {
11272
+ return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11273
+ var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11274
+ handleChangeTab(0);
11275
+ setDataChartIndex(0);
11276
+ setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
11277
+ setLongTimeSpend((_result$1$data2 = result[1].data) === null || _result$1$data2 === void 0 ? void 0 : _result$1$data2.data);
11278
+ setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11279
+ setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11280
+ setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
11263
11281
  });
11282
+ }, function (error) {
11283
+ toast.error(getErrorMessage(t, error));
11264
11284
  });
11265
- return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
11285
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11266
11286
  } catch (e) {
11267
11287
  return Promise.reject(e);
11268
11288
  }
@@ -11438,13 +11458,13 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11438
11458
  var series = (_allSeries$dataChartI = allSeries[dataChartIndex]) != null ? _allSeries$dataChartI : defaultSeries(t);
11439
11459
  var handleExportPdf = function handleExportPdf() {
11440
11460
  try {
11441
- var _temp26 = function _temp26(_result) {
11461
+ var _temp22 = function _temp22(_result) {
11442
11462
  if (_exit) return _result;
11443
11463
  dispatch(setLoading(false));
11444
11464
  };
11445
11465
  var _exit = false;
11446
11466
  dispatch(setLoading(true));
11447
- var _temp25 = _catch(function () {
11467
+ var _temp21 = _catch(function () {
11448
11468
  var canvas = document.querySelector("#canvas");
11449
11469
  var headerCanvas = document.querySelector("#header-canvas");
11450
11470
  if (!canvas || !headerCanvas) {
@@ -11466,7 +11486,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11466
11486
  var imgWidth = WIDTH_PAPER;
11467
11487
  var chartWidth = WIDTH_PAPER - 20;
11468
11488
  return Promise.resolve(html2canvas(headerCanvas)).then(function (header) {
11469
- function _temp24() {
11489
+ function _temp20() {
11470
11490
  doc.save("download.pdf");
11471
11491
  }
11472
11492
  var imgHeaderHeight = header.height * imgWidth / header.width;
@@ -11474,16 +11494,16 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11474
11494
  doc.addImage(imgHeaderData, 'PNG', 0, 0, imgWidth, imgHeaderHeight);
11475
11495
  line += imgHeaderHeight;
11476
11496
  if (line > HEIGHT_PAPER) breakPage();
11477
- var _temp23 = function () {
11497
+ var _temp19 = function () {
11478
11498
  if (canvas && canvas.childElementCount > 0) {
11479
11499
  var _index = 0;
11480
- var _temp22 = _for(function () {
11500
+ var _temp18 = _for(function () {
11481
11501
  return _index < canvas.childElementCount;
11482
11502
  }, function () {
11483
11503
  return _index++;
11484
11504
  }, function () {
11485
- function _temp21() {
11486
- function _temp19() {
11505
+ function _temp17() {
11506
+ function _temp15() {
11487
11507
  line += 20;
11488
11508
  }
11489
11509
  var printChartTitle = function printChartTitle() {
@@ -11498,11 +11518,11 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11498
11518
  return Promise.reject(e);
11499
11519
  }
11500
11520
  };
11501
- var _temp18 = function () {
11521
+ var _temp14 = function () {
11502
11522
  if (printContainerEls.length) {
11503
- var _temp17 = _forTo(printContainerEls, function (i) {
11504
- function _temp16() {
11505
- function _temp14() {
11523
+ var _temp13 = _forTo(printContainerEls, function (i) {
11524
+ function _temp12() {
11525
+ function _temp10() {
11506
11526
  var printTitle = function printTitle() {
11507
11527
  try {
11508
11528
  if (!printTitleHeight || !printTitleData) return Promise.resolve();
@@ -11531,10 +11551,10 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11531
11551
  var printContents = printContainerEl.querySelectorAll("." + PrintContentClassName);
11532
11552
  if (!printContents.length) return;
11533
11553
  printTitle();
11534
- var _temp12 = _forTo(printContents, function (j) {
11554
+ var _temp8 = _forTo(printContents, function (j) {
11535
11555
  var rowItem = printContents[j];
11536
11556
  return Promise.resolve(html2canvas(rowItem)).then(function (rowItemCanvas) {
11537
- function _temp11() {
11557
+ function _temp7() {
11538
11558
  doc.addImage(data, 'PNG', 10, line, chartWidth, height);
11539
11559
  line += height;
11540
11560
  }
@@ -11542,25 +11562,25 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11542
11562
  var data = rowItemCanvas.toDataURL('image/png');
11543
11563
  if (i === 0 && j === 0 && line + height + (printHeaderHeight || 0) + ((chartTitleHeight || 0) + 10) + 20 > HEIGHT_PAPER) breakPage();
11544
11564
  i === 0 && j === 0 && printChartTitle();
11545
- var _temp10 = function () {
11565
+ var _temp6 = function () {
11546
11566
  if (line + height + 20 > HEIGHT_PAPER) {
11547
11567
  breakPage();
11548
11568
  return Promise.resolve(printHeader()).then(function () {});
11549
11569
  } else {
11550
- var _temp27 = function () {
11570
+ var _temp23 = function () {
11551
11571
  if (j === 0) {
11552
11572
  return Promise.resolve(printHeader(10)).then(function () {});
11553
11573
  }
11554
11574
  }();
11555
- if (_temp27 && _temp27.then) return _temp27.then(function () {});
11575
+ if (_temp23 && _temp23.then) return _temp23.then(function () {});
11556
11576
  }
11557
11577
  }();
11558
- return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
11578
+ return _temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6);
11559
11579
  });
11560
11580
  });
11561
- if (_temp12 && _temp12.then) return _temp12.then(function () {});
11581
+ if (_temp8 && _temp8.then) return _temp8.then(function () {});
11562
11582
  }
11563
- var _temp13 = function () {
11583
+ var _temp9 = function () {
11564
11584
  if (printHeaderEl) {
11565
11585
  return Promise.resolve(html2canvas(printHeaderEl)).then(function (_html2canvas3) {
11566
11586
  printHeaderCanvas = _html2canvas3;
@@ -11569,7 +11589,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11569
11589
  });
11570
11590
  }
11571
11591
  }();
11572
- return _temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13);
11592
+ return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
11573
11593
  }
11574
11594
  var printContainerEl = printContainerEls[i];
11575
11595
  var printTitleEl = printContainerEl.querySelector("." + PrintTitleClassName);
@@ -11580,7 +11600,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11580
11600
  var printHeaderCanvas = null;
11581
11601
  var printHeaderHeight = null;
11582
11602
  var printHeaderData = "";
11583
- var _temp15 = function () {
11603
+ var _temp11 = function () {
11584
11604
  if (printTitleEl) {
11585
11605
  return Promise.resolve(html2canvas(printTitleEl)).then(function (_html2canvas2) {
11586
11606
  printTitleCanvas = _html2canvas2;
@@ -11589,9 +11609,9 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11589
11609
  });
11590
11610
  }
11591
11611
  }();
11592
- return _temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15);
11612
+ return _temp11 && _temp11.then ? _temp11.then(_temp12) : _temp12(_temp11);
11593
11613
  });
11594
- if (_temp17 && _temp17.then) return _temp17.then(function () {});
11614
+ if (_temp13 && _temp13.then) return _temp13.then(function () {});
11595
11615
  } else {
11596
11616
  return Promise.resolve(html2canvas(chart)).then(function (chartCanvas) {
11597
11617
  var imgBodyHeight = chartCanvas.height * chartWidth / chartCanvas.width;
@@ -11604,7 +11624,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11604
11624
  });
11605
11625
  }
11606
11626
  }();
11607
- return _temp18 && _temp18.then ? _temp18.then(_temp19) : _temp19(_temp18);
11627
+ return _temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14);
11608
11628
  }
11609
11629
  var chart = canvas.children.item(_index);
11610
11630
  if (chart.getAttribute("id") === "header-canvas") return;
@@ -11613,7 +11633,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11613
11633
  var printChartTitleCanvas = null;
11614
11634
  var chartTitleHeight = null;
11615
11635
  var chartTitleData = "";
11616
- var _temp20 = function () {
11636
+ var _temp16 = function () {
11617
11637
  if (chartTitle && printContainerEls.length) {
11618
11638
  return Promise.resolve(html2canvas(chartTitle)).then(function (_html2canvas) {
11619
11639
  printChartTitleCanvas = _html2canvas;
@@ -11622,12 +11642,12 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11622
11642
  });
11623
11643
  }
11624
11644
  }();
11625
- return _temp20 && _temp20.then ? _temp20.then(_temp21) : _temp21(_temp20);
11645
+ return _temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16);
11626
11646
  });
11627
- if (_temp22 && _temp22.then) return _temp22.then(function () {});
11647
+ if (_temp18 && _temp18.then) return _temp18.then(function () {});
11628
11648
  }
11629
11649
  }();
11630
- return _temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23);
11650
+ return _temp19 && _temp19.then ? _temp19.then(_temp20) : _temp20(_temp19);
11631
11651
  });
11632
11652
  }, function (error) {
11633
11653
  console.log({
@@ -11635,7 +11655,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11635
11655
  });
11636
11656
  toast.error(getErrorMessage(t, error));
11637
11657
  });
11638
- return Promise.resolve(_temp25 && _temp25.then ? _temp25.then(_temp26) : _temp26(_temp25));
11658
+ return Promise.resolve(_temp21 && _temp21.then ? _temp21.then(_temp22) : _temp22(_temp21));
11639
11659
  } catch (e) {
11640
11660
  return Promise.reject(e);
11641
11661
  }
@@ -13286,6 +13306,7 @@ function MyAnswer(_ref) {
13286
13306
  justifyContent: "flex-end"
13287
13307
  }
13288
13308
  }, React__default.createElement("span", {
13309
+ className: "pointer",
13289
13310
  onClick: function onClick(e) {
13290
13311
  return handleOpenChat(e, question === null || question === void 0 ? void 0 : question.id);
13291
13312
  }
@@ -15726,6 +15747,11 @@ var AcademyList = function AcademyList(_ref) {
15726
15747
  }, React__default.createElement("span", null, t("no_academy_available"), "."))))));
15727
15748
  };
15728
15749
 
15750
+ var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
15751
+ var getCheckStatusExam = function getCheckStatusExam(examCode) {
15752
+ return api.get(EXAM_SESSION_URL$1 + "/" + examCode + "/status");
15753
+ };
15754
+
15729
15755
  var ONE_SECOND_IN_MILLISECONDS = 1000;
15730
15756
  var useCountDownTimer = function useCountDownTimer(props) {
15731
15757
  var startTime = props.startTime,
@@ -15734,6 +15760,7 @@ var useCountDownTimer = function useCountDownTimer(props) {
15734
15760
  duration = props.duration,
15735
15761
  fetchedCount = props.fetchedCount,
15736
15762
  onFinish = props.onFinish;
15763
+ var dispatch = useDispatch();
15737
15764
  var _useState = useState(),
15738
15765
  remainTime = _useState[0],
15739
15766
  setRemainTime = _useState[1];
@@ -15746,9 +15773,11 @@ var useCountDownTimer = function useCountDownTimer(props) {
15746
15773
  return Promise.resolve();
15747
15774
  }
15748
15775
  var _temp = _catch(function () {
15776
+ dispatch(setLoading(true));
15749
15777
  return Promise.resolve(getCheckStatusExam(code)).then(function (res) {
15750
15778
  if (res.data.data.status === ExamStatus$1.Completed) {
15751
- clearInterval(checkStatusRef.current);
15779
+ clearTimeout(checkStatusRef.current);
15780
+ dispatch(setLoading(false));
15752
15781
  onFinish();
15753
15782
  } else {
15754
15783
  checkStatusRef.current = setTimeout(checkLiveExamStatus, ONE_SECOND_IN_MILLISECONDS);
@@ -15769,7 +15798,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15769
15798
  var animate = function animate() {
15770
15799
  if (!startTime || !duration) return;
15771
15800
  if (typeof remainTime === "number" && remainTime <= 0) {
15772
- onFinish();
15773
15801
  return;
15774
15802
  }
15775
15803
  var remain = getRemainTime(startTime, duration);
@@ -15779,7 +15807,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15779
15807
  }
15780
15808
  if (remain <= 0) {
15781
15809
  setRemainTime(0);
15782
- checkLiveExamStatus();
15783
15810
  return;
15784
15811
  }
15785
15812
  setRemainTime(remain || 0);
@@ -15788,61 +15815,15 @@ var useCountDownTimer = function useCountDownTimer(props) {
15788
15815
  requestRef.current = requestAnimationFrame(animate);
15789
15816
  return function () {
15790
15817
  !!requestRef.current && cancelAnimationFrame(requestRef.current);
15791
- !!checkStatusRef.current && clearTimeout(checkStatusRef.current);
15792
15818
  setRemainTime(undefined);
15793
15819
  };
15794
- }, [startTime, duration, fetchedCount, checkLiveExamStatus]);
15820
+ }, [startTime, duration, fetchedCount]);
15795
15821
  useEffect(function () {
15796
- if (typeof remainTime === "number" && remainTime <= 0) onFinish();
15797
- }, [remainTime, onFinish]);
15822
+ if (typeof remainTime === "number" && remainTime <= 0) checkLiveExamStatus();
15823
+ }, [remainTime, checkLiveExamStatus]);
15798
15824
  return remainTime;
15799
15825
  };
15800
15826
 
15801
- var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
15802
- var getCheckStatusExam$1 = function getCheckStatusExam(examCode) {
15803
- return api.get(EXAM_SESSION_URL$1 + "/" + examCode + "/status");
15804
- };
15805
-
15806
- var useCheckExam = function useCheckExam(code, status) {
15807
- var _useState = useState({}),
15808
- isCheckExam = _useState[0],
15809
- setCheckExam = _useState[1];
15810
- var isCheck = !code ? false : isCheckExam[code];
15811
- var checkExam = function checkExam() {
15812
- try {
15813
- if (!code || isCheck) return Promise.resolve();
15814
- if (status === ExamStatus$1.Completed) {
15815
- setCheckExam(function (state) {
15816
- var _extends2;
15817
- return _extends({}, state, (_extends2 = {}, _extends2[code] = true, _extends2));
15818
- });
15819
- return Promise.resolve();
15820
- }
15821
- var _temp = _catch(function () {
15822
- return Promise.resolve(getCheckStatusExam$1(code)).then(function () {
15823
- setCheckExam(function (state) {
15824
- var _extends3;
15825
- return _extends({}, state, (_extends3 = {}, _extends3[code] = true, _extends3));
15826
- });
15827
- });
15828
- }, function (error) {
15829
- console.log({
15830
- error: error
15831
- });
15832
- });
15833
- return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
15834
- } catch (e) {
15835
- return Promise.reject(e);
15836
- }
15837
- };
15838
- useEffect(function () {
15839
- checkExam();
15840
- }, [code]);
15841
- return {
15842
- isCheck: isCheck
15843
- };
15844
- };
15845
-
15846
15827
  var useLoadMore = function useLoadMore(props) {
15847
15828
  var onLoadMore = props.onLoadMore,
15848
15829
  loading = props.loading;
@@ -15941,5 +15922,5 @@ var useVirtualizeList = function useVirtualizeList(totalItems, rowHeight, offset
15941
15922
  };
15942
15923
  };
15943
15924
 
15944
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, Login, SignIn as LoginWithPassword, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCheckExam, useCountDownTimer, useGoogleSignOut, useLanguage, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
15925
+ export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, Login, SignIn as LoginWithPassword, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
15945
15926
  //# sourceMappingURL=index.modern.js.map