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.
@@ -9,4 +9,3 @@ export declare const getResultsEffectSizeTeacher: (id: number, studentId: number
9
9
  export declare const getResultsTimeOrderQuestionTeacher: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
10
10
  export declare const getResultsCategoriesTeacher: (id: number, studentId: number) => Promise<import("axios").AxiosResponse<any, any>>;
11
11
  export declare const createConversationApi: (data: any) => Promise<import("axios").AxiosResponse<any, any>>;
12
- export declare const getCheckStatusExam: (examCode?: string | undefined) => Promise<import("axios").AxiosResponse<any, any>>;
@@ -3,8 +3,6 @@ export declare const increaseDuration: (id: number, data: string) => Promise<imp
3
3
  export declare const terminateExam: (id: number) => Promise<import("axios").AxiosResponse<any, any>>;
4
4
  export declare const getListExamSession: (query: Exam) => Promise<import("axios").AxiosResponse<any, any>>;
5
5
  export declare const startExam: (examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
6
- export declare const checkStatusExamApi: (code: string) => Promise<import("axios").AxiosResponse<any, any>>;
7
6
  export declare const apiDeleteExam: (examId: number) => Promise<import("axios").AxiosResponse<any, any>>;
8
- export declare const apiActivePendingExam: (id: number) => Promise<import("axios").AxiosResponse<any, any>>;
9
7
  export declare const apiKickOutStudent: (studentId: number, examCode: string) => Promise<import("axios").AxiosResponse<any, any>>;
10
8
  export declare const apiGetJoinedStudents: (examCode: string) => Promise<import("axios").AxiosResponse<any, any>>;
package/dist/index.css CHANGED
@@ -933,7 +933,6 @@
933
933
  padding: 6px 0px;
934
934
  font-family: "Pretendard"; }
935
935
  ._eDBpS ._2K_sx ._2qiLh {
936
- cursor: pointer;
937
936
  padding: 6px 8px; }
938
937
  ._eDBpS ._2K_sx ._6TCOK {
939
938
  padding: 8px 12px 16px 84px;
package/dist/index.d.ts CHANGED
@@ -69,7 +69,6 @@ import getAcademyDomain from "./utils/getAcademyDomain";
69
69
  import { getOrdinalSuffix } from './utils/helpers';
70
70
  import { Language } from './utils/constants';
71
71
  import useCountDownTimer from "./utils/hooks/useCountDownTimer";
72
- import useCheckExam from "./utils/hooks/useCheckExam";
73
72
  import useLoadMore from "./utils/hooks/useLoadMore";
74
73
  import useVirtualizeList from "./utils/hooks/useVirtualizeList";
75
- export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, CustomPagination, useGoogleSignOut, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, CustomAsyncSelect, CustomSelectOption, LoginWithPassword, getAccessToken, ChatContainer, getOrdinalSuffix, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, Language, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils, Header, DEFAULT_PAGING_RESPONSE, PagingResponse, AcademyList, getErrorMessage, DefaultErrorMessage, useCountDownTimer, useCheckExam, useLoadMore, useVirtualizeList };
74
+ export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, CustomPagination, useGoogleSignOut, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, CustomAsyncSelect, CustomSelectOption, LoginWithPassword, getAccessToken, ChatContainer, getOrdinalSuffix, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, Language, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils, Header, DEFAULT_PAGING_RESPONSE, PagingResponse, AcademyList, getErrorMessage, DefaultErrorMessage, useCountDownTimer, useLoadMore, useVirtualizeList };
package/dist/index.js CHANGED
@@ -1739,7 +1739,7 @@ var formatTime = (function (time, ORIGINAL_FORMAT, FORMAT) {
1739
1739
  var diffFromNow = (function (time, unitOfTime, targetTime) {
1740
1740
  if (time === DATE_MIN_VALUE || targetTime === DATE_MIN_VALUE) return 0;
1741
1741
  try {
1742
- var now = !!targetTime ? moment() : moment.utc(targetTime).local();
1742
+ var now = !targetTime ? moment() : moment.utc(targetTime).local();
1743
1743
  return now.diff(moment.utc(time).local(), unitOfTime);
1744
1744
  } catch (_unused) {
1745
1745
  return "";
@@ -2514,9 +2514,21 @@ var number_of_correct_answers = "정답 수";
2514
2514
  var total_solve_time = "총 풀이 시간";
2515
2515
  var number_of_answer = "{{ number }} 개";
2516
2516
  var time_comparison = "시간 비교";
2517
+ var import_student_exam_results = "학생 시험 결과 가져오기";
2518
+ var file_required = "파일이 필요합니다";
2519
+ var exam_required = "시험이 필요합니다";
2520
+ var teacher_required = "선생님은 필수입니다";
2517
2521
  var total_users = "총 사용자";
2518
2522
  var added_date = "추가된 날짜";
2523
+ var sync_exam_results = "시험 결과 동기화";
2519
2524
  var update_data_fail = "데이터 업데이트 실패";
2525
+ var are_you_sure_to_sync_exam_results_to_academy = "시험 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까(백그라운드에서 실행되며 시간이 다소 소요됨)";
2526
+ var messages = {
2527
+ exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다"
2528
+ };
2529
+ var submit = "제출하다";
2530
+ var must_select_a_teacher_first = "먼저 교사를 선택해야 합니다";
2531
+ var student_grade_is_invalid = "학생 등급은 1에서 12 사이여야 합니다";
2520
2532
  var lang_ko = {
2521
2533
  problem_solving: problem_solving,
2522
2534
  my_story: my_story,
@@ -3169,9 +3181,19 @@ var lang_ko = {
3169
3181
  total_solve_time: total_solve_time,
3170
3182
  number_of_answer: number_of_answer,
3171
3183
  time_comparison: time_comparison,
3184
+ import_student_exam_results: import_student_exam_results,
3185
+ file_required: file_required,
3186
+ exam_required: exam_required,
3187
+ teacher_required: teacher_required,
3172
3188
  total_users: total_users,
3173
3189
  added_date: added_date,
3174
- update_data_fail: update_data_fail
3190
+ sync_exam_results: sync_exam_results,
3191
+ update_data_fail: update_data_fail,
3192
+ are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy,
3193
+ messages: messages,
3194
+ submit: submit,
3195
+ must_select_a_teacher_first: must_select_a_teacher_first,
3196
+ student_grade_is_invalid: student_grade_is_invalid
3175
3197
  };
3176
3198
 
3177
3199
  var problem_solving$1 = "Problem Solving";
@@ -3830,9 +3852,21 @@ var number_of_correct_answers$1 = "Number of correct answers";
3830
3852
  var total_solve_time$1 = "Total solve time";
3831
3853
  var number_of_answer$1 = "{{ number }}";
3832
3854
  var time_comparison$1 = "Time comparison";
3855
+ var import_student_exam_results$1 = "Import Student Exam Results";
3856
+ var file_required$1 = "File is required";
3857
+ var exam_required$1 = "Exam is required";
3858
+ var teacher_required$1 = "Teacher is required";
3833
3859
  var total_users$1 = "Total users";
3834
3860
  var added_date$1 = "Added date";
3861
+ var sync_exam_results$1 = "Sync exam results";
3835
3862
  var update_data_fail$1 = "Update data fail";
3863
+ 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)";
3864
+ var messages$1 = {
3865
+ exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized"
3866
+ };
3867
+ var submit$1 = "Submit";
3868
+ var must_select_a_teacher_first$1 = "Must select a teacher first";
3869
+ var student_grade_is_invalid$1 = "Student grade must be from 1 to 12";
3836
3870
  var lang_en = {
3837
3871
  problem_solving: problem_solving$1,
3838
3872
  my_story: my_story$1,
@@ -4485,9 +4519,19 @@ var lang_en = {
4485
4519
  total_solve_time: total_solve_time$1,
4486
4520
  number_of_answer: number_of_answer$1,
4487
4521
  time_comparison: time_comparison$1,
4522
+ import_student_exam_results: import_student_exam_results$1,
4523
+ file_required: file_required$1,
4524
+ exam_required: exam_required$1,
4525
+ teacher_required: teacher_required$1,
4488
4526
  total_users: total_users$1,
4489
4527
  added_date: added_date$1,
4490
- update_data_fail: update_data_fail$1
4528
+ sync_exam_results: sync_exam_results$1,
4529
+ update_data_fail: update_data_fail$1,
4530
+ are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy$1,
4531
+ messages: messages$1,
4532
+ submit: submit$1,
4533
+ must_select_a_teacher_first: must_select_a_teacher_first$1,
4534
+ student_grade_is_invalid: student_grade_is_invalid$1
4491
4535
  };
4492
4536
 
4493
4537
  i18n.use(reactI18next.initReactI18next).init({
@@ -10344,9 +10388,6 @@ var getResultsCategoriesTeacher = function getResultsCategoriesTeacher(id, stude
10344
10388
  var createConversationApi = function createConversationApi(data) {
10345
10389
  return api.post(BASE_URL + "/api/conversation", data);
10346
10390
  };
10347
- var getCheckStatusExam = function getCheckStatusExam(examCode) {
10348
- return api.get(EXAM_SESSION_URL + "/" + examCode + "/status");
10349
- };
10350
10391
 
10351
10392
  var toNumberOrder = function toNumberOrder(value) {
10352
10393
  return "The " + value + (value % 10 === 1 ? 'st' : value % 10 === 2 ? 'nd' : value % 10 === 3 ? 'rd' : 'th');
@@ -11194,72 +11235,51 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11194
11235
  t = _useTranslation.t;
11195
11236
  var getStudentData = function getStudentData(examCode) {
11196
11237
  try {
11197
- var _temp4 = function _temp4() {
11198
- function _temp2() {
11199
- dispatch(setLoading(false));
11200
- }
11201
- var _temp = _catch(function () {
11202
- return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11203
- var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
11204
- handleChangeTab(0);
11205
- setDataChartIndex(0);
11206
- setResultData((_result$0$data = result[0].data) === null || _result$0$data === void 0 ? void 0 : _result$0$data.data);
11207
- setLongTimeSpend((_result$1$data = result[1].data) === null || _result$1$data === void 0 ? void 0 : _result$1$data.data);
11208
- setEffectSize((_result$2$data = result[2].data) === null || _result$2$data === void 0 ? void 0 : _result$2$data.data);
11209
- setTimelyOrderQuestions((_result$3$data = result[3].data) === null || _result$3$data === void 0 ? void 0 : _result$3$data.data);
11210
- setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
11211
- });
11212
- }, function (error) {
11213
- reactToastify.toast.error(getErrorMessage(t, error));
11214
- });
11215
- return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
11238
+ var _temp2 = function _temp2() {
11239
+ dispatch(setLoading(false));
11216
11240
  };
11217
11241
  if (!examCode) return Promise.resolve();
11218
- dispatch(setLoading(true));
11219
- var _temp3 = _catch(function () {
11220
- return Promise.resolve(getCheckStatusExam(examCode)).then(function () {});
11221
- }, function (error) {
11222
- console.log({
11223
- error: error
11242
+ var _temp = _catch(function () {
11243
+ return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11244
+ var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
11245
+ handleChangeTab(0);
11246
+ setDataChartIndex(0);
11247
+ setResultData((_result$0$data = result[0].data) === null || _result$0$data === void 0 ? void 0 : _result$0$data.data);
11248
+ setLongTimeSpend((_result$1$data = result[1].data) === null || _result$1$data === void 0 ? void 0 : _result$1$data.data);
11249
+ setEffectSize((_result$2$data = result[2].data) === null || _result$2$data === void 0 ? void 0 : _result$2$data.data);
11250
+ setTimelyOrderQuestions((_result$3$data = result[3].data) === null || _result$3$data === void 0 ? void 0 : _result$3$data.data);
11251
+ setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
11224
11252
  });
11253
+ }, function (error) {
11254
+ reactToastify.toast.error(getErrorMessage(t, error));
11225
11255
  });
11226
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11256
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11227
11257
  } catch (e) {
11228
11258
  return Promise.reject(e);
11229
11259
  }
11230
11260
  };
11231
11261
  var getStudentDataByTeacher = function getStudentDataByTeacher(examCode, examSessionId, studentId) {
11232
11262
  try {
11233
- var _temp8 = function _temp8() {
11234
- function _temp6() {
11235
- dispatch(setLoading(false));
11236
- }
11237
- var _temp5 = _catch(function () {
11238
- return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11239
- var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11240
- handleChangeTab(0);
11241
- setDataChartIndex(0);
11242
- setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
11243
- setLongTimeSpend((_result$1$data2 = result[1].data) === null || _result$1$data2 === void 0 ? void 0 : _result$1$data2.data);
11244
- setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11245
- setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11246
- setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
11247
- });
11248
- }, function (error) {
11249
- reactToastify.toast.error(getErrorMessage(t, error));
11250
- });
11251
- return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
11263
+ var _temp4 = function _temp4() {
11264
+ dispatch(setLoading(false));
11252
11265
  };
11253
11266
  if (!examCode || !examSessionId || !studentId) return Promise.resolve();
11254
11267
  dispatch(setLoading(true));
11255
- var _temp7 = _catch(function () {
11256
- return Promise.resolve(getCheckStatusExam(examCode)).then(function () {});
11257
- }, function (error) {
11258
- console.log({
11259
- error: error
11268
+ var _temp3 = _catch(function () {
11269
+ return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11270
+ var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11271
+ handleChangeTab(0);
11272
+ setDataChartIndex(0);
11273
+ setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
11274
+ setLongTimeSpend((_result$1$data2 = result[1].data) === null || _result$1$data2 === void 0 ? void 0 : _result$1$data2.data);
11275
+ setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11276
+ setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11277
+ setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
11260
11278
  });
11279
+ }, function (error) {
11280
+ reactToastify.toast.error(getErrorMessage(t, error));
11261
11281
  });
11262
- return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
11282
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11263
11283
  } catch (e) {
11264
11284
  return Promise.reject(e);
11265
11285
  }
@@ -11435,13 +11455,13 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11435
11455
  var series = (_allSeries$dataChartI = allSeries[dataChartIndex]) != null ? _allSeries$dataChartI : defaultSeries(t);
11436
11456
  var handleExportPdf = function handleExportPdf() {
11437
11457
  try {
11438
- var _temp26 = function _temp26(_result) {
11458
+ var _temp22 = function _temp22(_result) {
11439
11459
  if (_exit) return _result;
11440
11460
  dispatch(setLoading(false));
11441
11461
  };
11442
11462
  var _exit = false;
11443
11463
  dispatch(setLoading(true));
11444
- var _temp25 = _catch(function () {
11464
+ var _temp21 = _catch(function () {
11445
11465
  var canvas = document.querySelector("#canvas");
11446
11466
  var headerCanvas = document.querySelector("#header-canvas");
11447
11467
  if (!canvas || !headerCanvas) {
@@ -11463,7 +11483,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11463
11483
  var imgWidth = WIDTH_PAPER;
11464
11484
  var chartWidth = WIDTH_PAPER - 20;
11465
11485
  return Promise.resolve(html2canvas(headerCanvas)).then(function (header) {
11466
- function _temp24() {
11486
+ function _temp20() {
11467
11487
  doc.save("download.pdf");
11468
11488
  }
11469
11489
  var imgHeaderHeight = header.height * imgWidth / header.width;
@@ -11471,16 +11491,16 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11471
11491
  doc.addImage(imgHeaderData, 'PNG', 0, 0, imgWidth, imgHeaderHeight);
11472
11492
  line += imgHeaderHeight;
11473
11493
  if (line > HEIGHT_PAPER) breakPage();
11474
- var _temp23 = function () {
11494
+ var _temp19 = function () {
11475
11495
  if (canvas && canvas.childElementCount > 0) {
11476
11496
  var _index = 0;
11477
- var _temp22 = _for(function () {
11497
+ var _temp18 = _for(function () {
11478
11498
  return _index < canvas.childElementCount;
11479
11499
  }, function () {
11480
11500
  return _index++;
11481
11501
  }, function () {
11482
- function _temp21() {
11483
- function _temp19() {
11502
+ function _temp17() {
11503
+ function _temp15() {
11484
11504
  line += 20;
11485
11505
  }
11486
11506
  var printChartTitle = function printChartTitle() {
@@ -11495,11 +11515,11 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11495
11515
  return Promise.reject(e);
11496
11516
  }
11497
11517
  };
11498
- var _temp18 = function () {
11518
+ var _temp14 = function () {
11499
11519
  if (printContainerEls.length) {
11500
- var _temp17 = _forTo(printContainerEls, function (i) {
11501
- function _temp16() {
11502
- function _temp14() {
11520
+ var _temp13 = _forTo(printContainerEls, function (i) {
11521
+ function _temp12() {
11522
+ function _temp10() {
11503
11523
  var printTitle = function printTitle() {
11504
11524
  try {
11505
11525
  if (!printTitleHeight || !printTitleData) return Promise.resolve();
@@ -11528,10 +11548,10 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11528
11548
  var printContents = printContainerEl.querySelectorAll("." + PrintContentClassName);
11529
11549
  if (!printContents.length) return;
11530
11550
  printTitle();
11531
- var _temp12 = _forTo(printContents, function (j) {
11551
+ var _temp8 = _forTo(printContents, function (j) {
11532
11552
  var rowItem = printContents[j];
11533
11553
  return Promise.resolve(html2canvas(rowItem)).then(function (rowItemCanvas) {
11534
- function _temp11() {
11554
+ function _temp7() {
11535
11555
  doc.addImage(data, 'PNG', 10, line, chartWidth, height);
11536
11556
  line += height;
11537
11557
  }
@@ -11539,25 +11559,25 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11539
11559
  var data = rowItemCanvas.toDataURL('image/png');
11540
11560
  if (i === 0 && j === 0 && line + height + (printHeaderHeight || 0) + ((chartTitleHeight || 0) + 10) + 20 > HEIGHT_PAPER) breakPage();
11541
11561
  i === 0 && j === 0 && printChartTitle();
11542
- var _temp10 = function () {
11562
+ var _temp6 = function () {
11543
11563
  if (line + height + 20 > HEIGHT_PAPER) {
11544
11564
  breakPage();
11545
11565
  return Promise.resolve(printHeader()).then(function () {});
11546
11566
  } else {
11547
- var _temp27 = function () {
11567
+ var _temp23 = function () {
11548
11568
  if (j === 0) {
11549
11569
  return Promise.resolve(printHeader(10)).then(function () {});
11550
11570
  }
11551
11571
  }();
11552
- if (_temp27 && _temp27.then) return _temp27.then(function () {});
11572
+ if (_temp23 && _temp23.then) return _temp23.then(function () {});
11553
11573
  }
11554
11574
  }();
11555
- return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
11575
+ return _temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6);
11556
11576
  });
11557
11577
  });
11558
- if (_temp12 && _temp12.then) return _temp12.then(function () {});
11578
+ if (_temp8 && _temp8.then) return _temp8.then(function () {});
11559
11579
  }
11560
- var _temp13 = function () {
11580
+ var _temp9 = function () {
11561
11581
  if (printHeaderEl) {
11562
11582
  return Promise.resolve(html2canvas(printHeaderEl)).then(function (_html2canvas3) {
11563
11583
  printHeaderCanvas = _html2canvas3;
@@ -11566,7 +11586,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11566
11586
  });
11567
11587
  }
11568
11588
  }();
11569
- return _temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13);
11589
+ return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
11570
11590
  }
11571
11591
  var printContainerEl = printContainerEls[i];
11572
11592
  var printTitleEl = printContainerEl.querySelector("." + PrintTitleClassName);
@@ -11577,7 +11597,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11577
11597
  var printHeaderCanvas = null;
11578
11598
  var printHeaderHeight = null;
11579
11599
  var printHeaderData = "";
11580
- var _temp15 = function () {
11600
+ var _temp11 = function () {
11581
11601
  if (printTitleEl) {
11582
11602
  return Promise.resolve(html2canvas(printTitleEl)).then(function (_html2canvas2) {
11583
11603
  printTitleCanvas = _html2canvas2;
@@ -11586,9 +11606,9 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11586
11606
  });
11587
11607
  }
11588
11608
  }();
11589
- return _temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15);
11609
+ return _temp11 && _temp11.then ? _temp11.then(_temp12) : _temp12(_temp11);
11590
11610
  });
11591
- if (_temp17 && _temp17.then) return _temp17.then(function () {});
11611
+ if (_temp13 && _temp13.then) return _temp13.then(function () {});
11592
11612
  } else {
11593
11613
  return Promise.resolve(html2canvas(chart)).then(function (chartCanvas) {
11594
11614
  var imgBodyHeight = chartCanvas.height * chartWidth / chartCanvas.width;
@@ -11601,7 +11621,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11601
11621
  });
11602
11622
  }
11603
11623
  }();
11604
- return _temp18 && _temp18.then ? _temp18.then(_temp19) : _temp19(_temp18);
11624
+ return _temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14);
11605
11625
  }
11606
11626
  var chart = canvas.children.item(_index);
11607
11627
  if (chart.getAttribute("id") === "header-canvas") return;
@@ -11610,7 +11630,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11610
11630
  var printChartTitleCanvas = null;
11611
11631
  var chartTitleHeight = null;
11612
11632
  var chartTitleData = "";
11613
- var _temp20 = function () {
11633
+ var _temp16 = function () {
11614
11634
  if (chartTitle && printContainerEls.length) {
11615
11635
  return Promise.resolve(html2canvas(chartTitle)).then(function (_html2canvas) {
11616
11636
  printChartTitleCanvas = _html2canvas;
@@ -11619,12 +11639,12 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11619
11639
  });
11620
11640
  }
11621
11641
  }();
11622
- return _temp20 && _temp20.then ? _temp20.then(_temp21) : _temp21(_temp20);
11642
+ return _temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16);
11623
11643
  });
11624
- if (_temp22 && _temp22.then) return _temp22.then(function () {});
11644
+ if (_temp18 && _temp18.then) return _temp18.then(function () {});
11625
11645
  }
11626
11646
  }();
11627
- return _temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23);
11647
+ return _temp19 && _temp19.then ? _temp19.then(_temp20) : _temp20(_temp19);
11628
11648
  });
11629
11649
  }, function (error) {
11630
11650
  console.log({
@@ -11632,7 +11652,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11632
11652
  });
11633
11653
  reactToastify.toast.error(getErrorMessage(t, error));
11634
11654
  });
11635
- return Promise.resolve(_temp25 && _temp25.then ? _temp25.then(_temp26) : _temp26(_temp25));
11655
+ return Promise.resolve(_temp21 && _temp21.then ? _temp21.then(_temp22) : _temp22(_temp21));
11636
11656
  } catch (e) {
11637
11657
  return Promise.reject(e);
11638
11658
  }
@@ -13283,6 +13303,7 @@ function MyAnswer(_ref) {
13283
13303
  justifyContent: "flex-end"
13284
13304
  }
13285
13305
  }, React__default.createElement("span", {
13306
+ className: "pointer",
13286
13307
  onClick: function onClick(e) {
13287
13308
  return handleOpenChat(e, question === null || question === void 0 ? void 0 : question.id);
13288
13309
  }
@@ -15723,6 +15744,11 @@ var AcademyList = function AcademyList(_ref) {
15723
15744
  }, React__default.createElement("span", null, t("no_academy_available"), "."))))));
15724
15745
  };
15725
15746
 
15747
+ var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
15748
+ var getCheckStatusExam = function getCheckStatusExam(examCode) {
15749
+ return api.get(EXAM_SESSION_URL$1 + "/" + examCode + "/status");
15750
+ };
15751
+
15726
15752
  var ONE_SECOND_IN_MILLISECONDS = 1000;
15727
15753
  var useCountDownTimer = function useCountDownTimer(props) {
15728
15754
  var startTime = props.startTime,
@@ -15731,6 +15757,7 @@ var useCountDownTimer = function useCountDownTimer(props) {
15731
15757
  duration = props.duration,
15732
15758
  fetchedCount = props.fetchedCount,
15733
15759
  onFinish = props.onFinish;
15760
+ var dispatch = reactRedux.useDispatch();
15734
15761
  var _useState = React.useState(),
15735
15762
  remainTime = _useState[0],
15736
15763
  setRemainTime = _useState[1];
@@ -15743,9 +15770,11 @@ var useCountDownTimer = function useCountDownTimer(props) {
15743
15770
  return Promise.resolve();
15744
15771
  }
15745
15772
  var _temp = _catch(function () {
15773
+ dispatch(setLoading(true));
15746
15774
  return Promise.resolve(getCheckStatusExam(code)).then(function (res) {
15747
15775
  if (res.data.data.status === ExamStatus$1.Completed) {
15748
- clearInterval(checkStatusRef.current);
15776
+ clearTimeout(checkStatusRef.current);
15777
+ dispatch(setLoading(false));
15749
15778
  onFinish();
15750
15779
  } else {
15751
15780
  checkStatusRef.current = setTimeout(checkLiveExamStatus, ONE_SECOND_IN_MILLISECONDS);
@@ -15766,7 +15795,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15766
15795
  var animate = function animate() {
15767
15796
  if (!startTime || !duration) return;
15768
15797
  if (typeof remainTime === "number" && remainTime <= 0) {
15769
- onFinish();
15770
15798
  return;
15771
15799
  }
15772
15800
  var remain = getRemainTime(startTime, duration);
@@ -15776,7 +15804,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15776
15804
  }
15777
15805
  if (remain <= 0) {
15778
15806
  setRemainTime(0);
15779
- checkLiveExamStatus();
15780
15807
  return;
15781
15808
  }
15782
15809
  setRemainTime(remain || 0);
@@ -15785,61 +15812,15 @@ var useCountDownTimer = function useCountDownTimer(props) {
15785
15812
  requestRef.current = requestAnimationFrame(animate);
15786
15813
  return function () {
15787
15814
  !!requestRef.current && cancelAnimationFrame(requestRef.current);
15788
- !!checkStatusRef.current && clearTimeout(checkStatusRef.current);
15789
15815
  setRemainTime(undefined);
15790
15816
  };
15791
- }, [startTime, duration, fetchedCount, checkLiveExamStatus]);
15817
+ }, [startTime, duration, fetchedCount]);
15792
15818
  React.useEffect(function () {
15793
- if (typeof remainTime === "number" && remainTime <= 0) onFinish();
15794
- }, [remainTime, onFinish]);
15819
+ if (typeof remainTime === "number" && remainTime <= 0) checkLiveExamStatus();
15820
+ }, [remainTime, checkLiveExamStatus]);
15795
15821
  return remainTime;
15796
15822
  };
15797
15823
 
15798
- var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
15799
- var getCheckStatusExam$1 = function getCheckStatusExam(examCode) {
15800
- return api.get(EXAM_SESSION_URL$1 + "/" + examCode + "/status");
15801
- };
15802
-
15803
- var useCheckExam = function useCheckExam(code, status) {
15804
- var _useState = React.useState({}),
15805
- isCheckExam = _useState[0],
15806
- setCheckExam = _useState[1];
15807
- var isCheck = !code ? false : isCheckExam[code];
15808
- var checkExam = function checkExam() {
15809
- try {
15810
- if (!code || isCheck) return Promise.resolve();
15811
- if (status === ExamStatus$1.Completed) {
15812
- setCheckExam(function (state) {
15813
- var _extends2;
15814
- return _extends({}, state, (_extends2 = {}, _extends2[code] = true, _extends2));
15815
- });
15816
- return Promise.resolve();
15817
- }
15818
- var _temp = _catch(function () {
15819
- return Promise.resolve(getCheckStatusExam$1(code)).then(function () {
15820
- setCheckExam(function (state) {
15821
- var _extends3;
15822
- return _extends({}, state, (_extends3 = {}, _extends3[code] = true, _extends3));
15823
- });
15824
- });
15825
- }, function (error) {
15826
- console.log({
15827
- error: error
15828
- });
15829
- });
15830
- return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
15831
- } catch (e) {
15832
- return Promise.reject(e);
15833
- }
15834
- };
15835
- React.useEffect(function () {
15836
- checkExam();
15837
- }, [code]);
15838
- return {
15839
- isCheck: isCheck
15840
- };
15841
- };
15842
-
15843
15824
  var useLoadMore = function useLoadMore(props) {
15844
15825
  var onLoadMore = props.onLoadMore,
15845
15826
  loading = props.loading;
@@ -16032,7 +16013,6 @@ exports.toISOString = toISOString;
16032
16013
  exports.useAutoAcademyDomain = useAutoAcademyDomain;
16033
16014
  exports.useCategorySelect = useCategorySelect;
16034
16015
  exports.useChatContainer = useChatContainer;
16035
- exports.useCheckExam = useCheckExam;
16036
16016
  exports.useCountDownTimer = useCountDownTimer;
16037
16017
  exports.useGoogleSignOut = useGoogleSignOut;
16038
16018
  exports.useLanguage = useLanguage;