touchstudy-core 0.1.67 → 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 "";
@@ -2268,6 +2268,7 @@ var creation_date = "생성 날짜";
2268
2268
  var total_use = "총 사용량";
2269
2269
  var duration = "지속";
2270
2270
  var code_header = "암호";
2271
+ var duration_header = "지속";
2271
2272
  var total_number_of_students_participating = "참여한 총 학생 수";
2272
2273
  var create = "생성하기";
2273
2274
  var to_show = "보여주다";
@@ -2513,6 +2514,21 @@ var number_of_correct_answers = "정답 수";
2513
2514
  var total_solve_time = "총 풀이 시간";
2514
2515
  var number_of_answer = "{{ number }} 개";
2515
2516
  var time_comparison = "시간 비교";
2517
+ var import_student_exam_results = "학생 시험 결과 가져오기";
2518
+ var file_required = "파일이 필요합니다";
2519
+ var exam_required = "시험이 필요합니다";
2520
+ var teacher_required = "선생님은 필수입니다";
2521
+ var total_users = "총 사용자";
2522
+ var added_date = "추가된 날짜";
2523
+ var sync_exam_results = "시험 결과 동기화";
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 사이여야 합니다";
2516
2532
  var lang_ko = {
2517
2533
  problem_solving: problem_solving,
2518
2534
  my_story: my_story,
@@ -2916,6 +2932,7 @@ var lang_ko = {
2916
2932
  total_use: total_use,
2917
2933
  duration: duration,
2918
2934
  code_header: code_header,
2935
+ duration_header: duration_header,
2919
2936
  total_number_of_students_participating: total_number_of_students_participating,
2920
2937
  create: create,
2921
2938
  to_show: to_show,
@@ -3163,7 +3180,20 @@ var lang_ko = {
3163
3180
  number_of_correct_answers: number_of_correct_answers,
3164
3181
  total_solve_time: total_solve_time,
3165
3182
  number_of_answer: number_of_answer,
3166
- time_comparison: time_comparison
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,
3188
+ total_users: total_users,
3189
+ added_date: added_date,
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
3167
3197
  };
3168
3198
 
3169
3199
  var problem_solving$1 = "Problem Solving";
@@ -3599,6 +3629,7 @@ var creation_date$1 = "Creation date";
3599
3629
  var total_use$1 = "Total use";
3600
3630
  var duration$1 = "Duration";
3601
3631
  var code_header$1 = "Code";
3632
+ var duration_header$1 = "Duration";
3602
3633
  var total_number_of_students_participating$1 = "Total number of students participating";
3603
3634
  var create$1 = "Create";
3604
3635
  var to_show$1 = "To Show";
@@ -3821,6 +3852,21 @@ var number_of_correct_answers$1 = "Number of correct answers";
3821
3852
  var total_solve_time$1 = "Total solve time";
3822
3853
  var number_of_answer$1 = "{{ number }}";
3823
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";
3859
+ var total_users$1 = "Total users";
3860
+ var added_date$1 = "Added date";
3861
+ var sync_exam_results$1 = "Sync exam results";
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";
3824
3870
  var lang_en = {
3825
3871
  problem_solving: problem_solving$1,
3826
3872
  my_story: my_story$1,
@@ -4247,6 +4293,7 @@ var lang_en = {
4247
4293
  total_use: total_use$1,
4248
4294
  duration: duration$1,
4249
4295
  code_header: code_header$1,
4296
+ duration_header: duration_header$1,
4250
4297
  total_number_of_students_participating: total_number_of_students_participating$1,
4251
4298
  create: create$1,
4252
4299
  to_show: to_show$1,
@@ -4471,7 +4518,20 @@ var lang_en = {
4471
4518
  number_of_correct_answers: number_of_correct_answers$1,
4472
4519
  total_solve_time: total_solve_time$1,
4473
4520
  number_of_answer: number_of_answer$1,
4474
- time_comparison: time_comparison$1
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,
4526
+ total_users: total_users$1,
4527
+ added_date: added_date$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
4475
4535
  };
4476
4536
 
4477
4537
  i18n.use(reactI18next.initReactI18next).init({
@@ -10328,9 +10388,6 @@ var getResultsCategoriesTeacher = function getResultsCategoriesTeacher(id, stude
10328
10388
  var createConversationApi = function createConversationApi(data) {
10329
10389
  return api.post(BASE_URL + "/api/conversation", data);
10330
10390
  };
10331
- var getCheckStatusExam = function getCheckStatusExam(examCode) {
10332
- return api.get(EXAM_SESSION_URL + "/" + examCode + "/status");
10333
- };
10334
10391
 
10335
10392
  var toNumberOrder = function toNumberOrder(value) {
10336
10393
  return "The " + value + (value % 10 === 1 ? 'st' : value % 10 === 2 ? 'nd' : value % 10 === 3 ? 'rd' : 'th');
@@ -11178,72 +11235,51 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11178
11235
  t = _useTranslation.t;
11179
11236
  var getStudentData = function getStudentData(examCode) {
11180
11237
  try {
11181
- var _temp4 = function _temp4() {
11182
- function _temp2() {
11183
- dispatch(setLoading(false));
11184
- }
11185
- var _temp = _catch(function () {
11186
- return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11187
- var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
11188
- handleChangeTab(0);
11189
- setDataChartIndex(0);
11190
- setResultData((_result$0$data = result[0].data) === null || _result$0$data === void 0 ? void 0 : _result$0$data.data);
11191
- setLongTimeSpend((_result$1$data = result[1].data) === null || _result$1$data === void 0 ? void 0 : _result$1$data.data);
11192
- setEffectSize((_result$2$data = result[2].data) === null || _result$2$data === void 0 ? void 0 : _result$2$data.data);
11193
- setTimelyOrderQuestions((_result$3$data = result[3].data) === null || _result$3$data === void 0 ? void 0 : _result$3$data.data);
11194
- setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
11195
- });
11196
- }, function (error) {
11197
- reactToastify.toast.error(getErrorMessage(t, error));
11198
- });
11199
- return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
11238
+ var _temp2 = function _temp2() {
11239
+ dispatch(setLoading(false));
11200
11240
  };
11201
11241
  if (!examCode) return Promise.resolve();
11202
- dispatch(setLoading(true));
11203
- var _temp3 = _catch(function () {
11204
- return Promise.resolve(getCheckStatusExam(examCode)).then(function () {});
11205
- }, function (error) {
11206
- console.log({
11207
- 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) || []);
11208
11252
  });
11253
+ }, function (error) {
11254
+ reactToastify.toast.error(getErrorMessage(t, error));
11209
11255
  });
11210
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11256
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11211
11257
  } catch (e) {
11212
11258
  return Promise.reject(e);
11213
11259
  }
11214
11260
  };
11215
11261
  var getStudentDataByTeacher = function getStudentDataByTeacher(examCode, examSessionId, studentId) {
11216
11262
  try {
11217
- var _temp8 = function _temp8() {
11218
- function _temp6() {
11219
- dispatch(setLoading(false));
11220
- }
11221
- var _temp5 = _catch(function () {
11222
- return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11223
- var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11224
- handleChangeTab(0);
11225
- setDataChartIndex(0);
11226
- setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
11227
- setLongTimeSpend((_result$1$data2 = result[1].data) === null || _result$1$data2 === void 0 ? void 0 : _result$1$data2.data);
11228
- setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11229
- setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11230
- setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
11231
- });
11232
- }, function (error) {
11233
- reactToastify.toast.error(getErrorMessage(t, error));
11234
- });
11235
- return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
11263
+ var _temp4 = function _temp4() {
11264
+ dispatch(setLoading(false));
11236
11265
  };
11237
11266
  if (!examCode || !examSessionId || !studentId) return Promise.resolve();
11238
11267
  dispatch(setLoading(true));
11239
- var _temp7 = _catch(function () {
11240
- return Promise.resolve(getCheckStatusExam(examCode)).then(function () {});
11241
- }, function (error) {
11242
- console.log({
11243
- 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) || []);
11244
11278
  });
11279
+ }, function (error) {
11280
+ reactToastify.toast.error(getErrorMessage(t, error));
11245
11281
  });
11246
- return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
11282
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11247
11283
  } catch (e) {
11248
11284
  return Promise.reject(e);
11249
11285
  }
@@ -11419,13 +11455,13 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11419
11455
  var series = (_allSeries$dataChartI = allSeries[dataChartIndex]) != null ? _allSeries$dataChartI : defaultSeries(t);
11420
11456
  var handleExportPdf = function handleExportPdf() {
11421
11457
  try {
11422
- var _temp26 = function _temp26(_result) {
11458
+ var _temp22 = function _temp22(_result) {
11423
11459
  if (_exit) return _result;
11424
11460
  dispatch(setLoading(false));
11425
11461
  };
11426
11462
  var _exit = false;
11427
11463
  dispatch(setLoading(true));
11428
- var _temp25 = _catch(function () {
11464
+ var _temp21 = _catch(function () {
11429
11465
  var canvas = document.querySelector("#canvas");
11430
11466
  var headerCanvas = document.querySelector("#header-canvas");
11431
11467
  if (!canvas || !headerCanvas) {
@@ -11447,7 +11483,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11447
11483
  var imgWidth = WIDTH_PAPER;
11448
11484
  var chartWidth = WIDTH_PAPER - 20;
11449
11485
  return Promise.resolve(html2canvas(headerCanvas)).then(function (header) {
11450
- function _temp24() {
11486
+ function _temp20() {
11451
11487
  doc.save("download.pdf");
11452
11488
  }
11453
11489
  var imgHeaderHeight = header.height * imgWidth / header.width;
@@ -11455,16 +11491,16 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11455
11491
  doc.addImage(imgHeaderData, 'PNG', 0, 0, imgWidth, imgHeaderHeight);
11456
11492
  line += imgHeaderHeight;
11457
11493
  if (line > HEIGHT_PAPER) breakPage();
11458
- var _temp23 = function () {
11494
+ var _temp19 = function () {
11459
11495
  if (canvas && canvas.childElementCount > 0) {
11460
11496
  var _index = 0;
11461
- var _temp22 = _for(function () {
11497
+ var _temp18 = _for(function () {
11462
11498
  return _index < canvas.childElementCount;
11463
11499
  }, function () {
11464
11500
  return _index++;
11465
11501
  }, function () {
11466
- function _temp21() {
11467
- function _temp19() {
11502
+ function _temp17() {
11503
+ function _temp15() {
11468
11504
  line += 20;
11469
11505
  }
11470
11506
  var printChartTitle = function printChartTitle() {
@@ -11479,11 +11515,11 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11479
11515
  return Promise.reject(e);
11480
11516
  }
11481
11517
  };
11482
- var _temp18 = function () {
11518
+ var _temp14 = function () {
11483
11519
  if (printContainerEls.length) {
11484
- var _temp17 = _forTo(printContainerEls, function (i) {
11485
- function _temp16() {
11486
- function _temp14() {
11520
+ var _temp13 = _forTo(printContainerEls, function (i) {
11521
+ function _temp12() {
11522
+ function _temp10() {
11487
11523
  var printTitle = function printTitle() {
11488
11524
  try {
11489
11525
  if (!printTitleHeight || !printTitleData) return Promise.resolve();
@@ -11512,10 +11548,10 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11512
11548
  var printContents = printContainerEl.querySelectorAll("." + PrintContentClassName);
11513
11549
  if (!printContents.length) return;
11514
11550
  printTitle();
11515
- var _temp12 = _forTo(printContents, function (j) {
11551
+ var _temp8 = _forTo(printContents, function (j) {
11516
11552
  var rowItem = printContents[j];
11517
11553
  return Promise.resolve(html2canvas(rowItem)).then(function (rowItemCanvas) {
11518
- function _temp11() {
11554
+ function _temp7() {
11519
11555
  doc.addImage(data, 'PNG', 10, line, chartWidth, height);
11520
11556
  line += height;
11521
11557
  }
@@ -11523,25 +11559,25 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11523
11559
  var data = rowItemCanvas.toDataURL('image/png');
11524
11560
  if (i === 0 && j === 0 && line + height + (printHeaderHeight || 0) + ((chartTitleHeight || 0) + 10) + 20 > HEIGHT_PAPER) breakPage();
11525
11561
  i === 0 && j === 0 && printChartTitle();
11526
- var _temp10 = function () {
11562
+ var _temp6 = function () {
11527
11563
  if (line + height + 20 > HEIGHT_PAPER) {
11528
11564
  breakPage();
11529
11565
  return Promise.resolve(printHeader()).then(function () {});
11530
11566
  } else {
11531
- var _temp27 = function () {
11567
+ var _temp23 = function () {
11532
11568
  if (j === 0) {
11533
11569
  return Promise.resolve(printHeader(10)).then(function () {});
11534
11570
  }
11535
11571
  }();
11536
- if (_temp27 && _temp27.then) return _temp27.then(function () {});
11572
+ if (_temp23 && _temp23.then) return _temp23.then(function () {});
11537
11573
  }
11538
11574
  }();
11539
- return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
11575
+ return _temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6);
11540
11576
  });
11541
11577
  });
11542
- if (_temp12 && _temp12.then) return _temp12.then(function () {});
11578
+ if (_temp8 && _temp8.then) return _temp8.then(function () {});
11543
11579
  }
11544
- var _temp13 = function () {
11580
+ var _temp9 = function () {
11545
11581
  if (printHeaderEl) {
11546
11582
  return Promise.resolve(html2canvas(printHeaderEl)).then(function (_html2canvas3) {
11547
11583
  printHeaderCanvas = _html2canvas3;
@@ -11550,7 +11586,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11550
11586
  });
11551
11587
  }
11552
11588
  }();
11553
- return _temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13);
11589
+ return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
11554
11590
  }
11555
11591
  var printContainerEl = printContainerEls[i];
11556
11592
  var printTitleEl = printContainerEl.querySelector("." + PrintTitleClassName);
@@ -11561,7 +11597,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11561
11597
  var printHeaderCanvas = null;
11562
11598
  var printHeaderHeight = null;
11563
11599
  var printHeaderData = "";
11564
- var _temp15 = function () {
11600
+ var _temp11 = function () {
11565
11601
  if (printTitleEl) {
11566
11602
  return Promise.resolve(html2canvas(printTitleEl)).then(function (_html2canvas2) {
11567
11603
  printTitleCanvas = _html2canvas2;
@@ -11570,9 +11606,9 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11570
11606
  });
11571
11607
  }
11572
11608
  }();
11573
- return _temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15);
11609
+ return _temp11 && _temp11.then ? _temp11.then(_temp12) : _temp12(_temp11);
11574
11610
  });
11575
- if (_temp17 && _temp17.then) return _temp17.then(function () {});
11611
+ if (_temp13 && _temp13.then) return _temp13.then(function () {});
11576
11612
  } else {
11577
11613
  return Promise.resolve(html2canvas(chart)).then(function (chartCanvas) {
11578
11614
  var imgBodyHeight = chartCanvas.height * chartWidth / chartCanvas.width;
@@ -11585,7 +11621,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11585
11621
  });
11586
11622
  }
11587
11623
  }();
11588
- return _temp18 && _temp18.then ? _temp18.then(_temp19) : _temp19(_temp18);
11624
+ return _temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14);
11589
11625
  }
11590
11626
  var chart = canvas.children.item(_index);
11591
11627
  if (chart.getAttribute("id") === "header-canvas") return;
@@ -11594,7 +11630,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11594
11630
  var printChartTitleCanvas = null;
11595
11631
  var chartTitleHeight = null;
11596
11632
  var chartTitleData = "";
11597
- var _temp20 = function () {
11633
+ var _temp16 = function () {
11598
11634
  if (chartTitle && printContainerEls.length) {
11599
11635
  return Promise.resolve(html2canvas(chartTitle)).then(function (_html2canvas) {
11600
11636
  printChartTitleCanvas = _html2canvas;
@@ -11603,12 +11639,12 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11603
11639
  });
11604
11640
  }
11605
11641
  }();
11606
- return _temp20 && _temp20.then ? _temp20.then(_temp21) : _temp21(_temp20);
11642
+ return _temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16);
11607
11643
  });
11608
- if (_temp22 && _temp22.then) return _temp22.then(function () {});
11644
+ if (_temp18 && _temp18.then) return _temp18.then(function () {});
11609
11645
  }
11610
11646
  }();
11611
- return _temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23);
11647
+ return _temp19 && _temp19.then ? _temp19.then(_temp20) : _temp20(_temp19);
11612
11648
  });
11613
11649
  }, function (error) {
11614
11650
  console.log({
@@ -11616,7 +11652,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11616
11652
  });
11617
11653
  reactToastify.toast.error(getErrorMessage(t, error));
11618
11654
  });
11619
- return Promise.resolve(_temp25 && _temp25.then ? _temp25.then(_temp26) : _temp26(_temp25));
11655
+ return Promise.resolve(_temp21 && _temp21.then ? _temp21.then(_temp22) : _temp22(_temp21));
11620
11656
  } catch (e) {
11621
11657
  return Promise.reject(e);
11622
11658
  }
@@ -13267,6 +13303,7 @@ function MyAnswer(_ref) {
13267
13303
  justifyContent: "flex-end"
13268
13304
  }
13269
13305
  }, React__default.createElement("span", {
13306
+ className: "pointer",
13270
13307
  onClick: function onClick(e) {
13271
13308
  return handleOpenChat(e, question === null || question === void 0 ? void 0 : question.id);
13272
13309
  }
@@ -15707,6 +15744,11 @@ var AcademyList = function AcademyList(_ref) {
15707
15744
  }, React__default.createElement("span", null, t("no_academy_available"), "."))))));
15708
15745
  };
15709
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
+
15710
15752
  var ONE_SECOND_IN_MILLISECONDS = 1000;
15711
15753
  var useCountDownTimer = function useCountDownTimer(props) {
15712
15754
  var startTime = props.startTime,
@@ -15715,6 +15757,7 @@ var useCountDownTimer = function useCountDownTimer(props) {
15715
15757
  duration = props.duration,
15716
15758
  fetchedCount = props.fetchedCount,
15717
15759
  onFinish = props.onFinish;
15760
+ var dispatch = reactRedux.useDispatch();
15718
15761
  var _useState = React.useState(),
15719
15762
  remainTime = _useState[0],
15720
15763
  setRemainTime = _useState[1];
@@ -15727,9 +15770,11 @@ var useCountDownTimer = function useCountDownTimer(props) {
15727
15770
  return Promise.resolve();
15728
15771
  }
15729
15772
  var _temp = _catch(function () {
15773
+ dispatch(setLoading(true));
15730
15774
  return Promise.resolve(getCheckStatusExam(code)).then(function (res) {
15731
15775
  if (res.data.data.status === ExamStatus$1.Completed) {
15732
- clearInterval(checkStatusRef.current);
15776
+ clearTimeout(checkStatusRef.current);
15777
+ dispatch(setLoading(false));
15733
15778
  onFinish();
15734
15779
  } else {
15735
15780
  checkStatusRef.current = setTimeout(checkLiveExamStatus, ONE_SECOND_IN_MILLISECONDS);
@@ -15750,7 +15795,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15750
15795
  var animate = function animate() {
15751
15796
  if (!startTime || !duration) return;
15752
15797
  if (typeof remainTime === "number" && remainTime <= 0) {
15753
- onFinish();
15754
15798
  return;
15755
15799
  }
15756
15800
  var remain = getRemainTime(startTime, duration);
@@ -15760,7 +15804,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15760
15804
  }
15761
15805
  if (remain <= 0) {
15762
15806
  setRemainTime(0);
15763
- checkLiveExamStatus();
15764
15807
  return;
15765
15808
  }
15766
15809
  setRemainTime(remain || 0);
@@ -15769,61 +15812,15 @@ var useCountDownTimer = function useCountDownTimer(props) {
15769
15812
  requestRef.current = requestAnimationFrame(animate);
15770
15813
  return function () {
15771
15814
  !!requestRef.current && cancelAnimationFrame(requestRef.current);
15772
- !!checkStatusRef.current && clearTimeout(checkStatusRef.current);
15773
15815
  setRemainTime(undefined);
15774
15816
  };
15775
- }, [startTime, duration, fetchedCount, checkLiveExamStatus]);
15817
+ }, [startTime, duration, fetchedCount]);
15776
15818
  React.useEffect(function () {
15777
- if (typeof remainTime === "number" && remainTime <= 0) onFinish();
15778
- }, [remainTime, onFinish]);
15819
+ if (typeof remainTime === "number" && remainTime <= 0) checkLiveExamStatus();
15820
+ }, [remainTime, checkLiveExamStatus]);
15779
15821
  return remainTime;
15780
15822
  };
15781
15823
 
15782
- var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
15783
- var getCheckStatusExam$1 = function getCheckStatusExam(examCode) {
15784
- return api.get(EXAM_SESSION_URL$1 + "/" + examCode + "/status");
15785
- };
15786
-
15787
- var useCheckExam = function useCheckExam(code, status) {
15788
- var _useState = React.useState({}),
15789
- isCheckExam = _useState[0],
15790
- setCheckExam = _useState[1];
15791
- var isCheck = !code ? false : isCheckExam[code];
15792
- var checkExam = function checkExam() {
15793
- try {
15794
- if (!code || isCheck) return Promise.resolve();
15795
- if (status === ExamStatus$1.Completed) {
15796
- setCheckExam(function (state) {
15797
- var _extends2;
15798
- return _extends({}, state, (_extends2 = {}, _extends2[code] = true, _extends2));
15799
- });
15800
- return Promise.resolve();
15801
- }
15802
- var _temp = _catch(function () {
15803
- return Promise.resolve(getCheckStatusExam$1(code)).then(function () {
15804
- setCheckExam(function (state) {
15805
- var _extends3;
15806
- return _extends({}, state, (_extends3 = {}, _extends3[code] = true, _extends3));
15807
- });
15808
- });
15809
- }, function (error) {
15810
- console.log({
15811
- error: error
15812
- });
15813
- });
15814
- return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
15815
- } catch (e) {
15816
- return Promise.reject(e);
15817
- }
15818
- };
15819
- React.useEffect(function () {
15820
- checkExam();
15821
- }, [code]);
15822
- return {
15823
- isCheck: isCheck
15824
- };
15825
- };
15826
-
15827
15824
  var useLoadMore = function useLoadMore(props) {
15828
15825
  var onLoadMore = props.onLoadMore,
15829
15826
  loading = props.loading;
@@ -16016,7 +16013,6 @@ exports.toISOString = toISOString;
16016
16013
  exports.useAutoAcademyDomain = useAutoAcademyDomain;
16017
16014
  exports.useCategorySelect = useCategorySelect;
16018
16015
  exports.useChatContainer = useChatContainer;
16019
- exports.useCheckExam = useCheckExam;
16020
16016
  exports.useCountDownTimer = useCountDownTimer;
16021
16017
  exports.useGoogleSignOut = useGoogleSignOut;
16022
16018
  exports.useLanguage = useLanguage;