touchstudy-core 0.1.68 → 0.1.70

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.
Files changed (35) hide show
  1. package/dist/components/Chats/hooks/useMessageList.d.ts +5 -2
  2. package/dist/components/Commons/NotFound.d.ts +1 -1
  3. package/dist/components/Dialogs/PassCodeDialog.d.ts +10 -0
  4. package/dist/components/Dialogs/configs/types.d.ts +4 -0
  5. package/dist/components/Loading/LoadingComponent.d.ts +6 -0
  6. package/dist/components/Selectors/InActiveAcademySelector.d.ts +16 -0
  7. package/dist/containers/Academies/apiClients/academyService.d.ts +1 -2
  8. package/dist/containers/Academies/components/PassCodeDialog.d.ts +10 -0
  9. package/dist/containers/Academies/hooks/useAcademyList.d.ts +1 -2
  10. package/dist/containers/ExamResult/apiClients/index.d.ts +0 -1
  11. package/dist/containers/ExamResult/hooks/useExamResult.d.ts +1 -0
  12. package/dist/containers/Login/hooks/useLogin.d.ts +1 -1
  13. package/dist/containers/PassCodes/configs/types.d.ts +6 -0
  14. package/dist/containers/PassCodes/hooks/usePassCodeCheck.d.ts +19 -0
  15. package/dist/containers/PassCodes/views/PassCodeCheck.d.ts +13 -0
  16. package/dist/containers/Textbooks/apiClient/examSessionService.d.ts +0 -2
  17. package/dist/index.css +0 -1
  18. package/dist/index.d.ts +6 -3
  19. package/dist/index.js +1036 -323
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.modern.js +1015 -307
  22. package/dist/index.modern.js.map +1 -1
  23. package/dist/services/academyService.d.ts +4 -1
  24. package/dist/services/accountService.d.ts +1 -0
  25. package/dist/services/passCodeService.d.ts +1 -0
  26. package/dist/services/recentUserActionService.d.ts +10 -0
  27. package/dist/utils/constants.d.ts +21 -0
  28. package/dist/utils/enums/index.d.ts +2 -1
  29. package/dist/utils/enums/recentUserAction.d.ts +7 -0
  30. package/dist/utils/hooks/useLayoutContext.d.ts +3 -1
  31. package/dist/utils/hooks/useSwitchAcademy.d.ts +1 -1
  32. package/dist/utils/types/checkSuperUrl.d.ts +1 -0
  33. package/dist/utils/types/index.d.ts +2 -1
  34. package/dist/utils/types/recentUserAction.d.ts +33 -0
  35. package/package.json +1 -1
@@ -85,10 +85,10 @@ var encodeParams = function encodeParams(params) {
85
85
  if (Array.isArray(params[key])) {
86
86
  return params[key].map(function (i) {
87
87
  return encodeURIComponent(key) + "=" + encodeURIComponent(i);
88
- }).join('&');
88
+ }).join("&");
89
89
  }
90
90
  return encodeURIComponent(key) + "=" + encodeURIComponent(params[key]);
91
- }).join('&');
91
+ }).join("&");
92
92
  };
93
93
  var Role;
94
94
  (function (Role) {
@@ -102,6 +102,27 @@ var Language;
102
102
  Language["ko"] = "ko";
103
103
  Language["en"] = "en";
104
104
  })(Language || (Language = {}));
105
+ var RecentUserAction = {
106
+ ViewedUser: "viewed_user",
107
+ ViewedQNA: "viewed_QNA",
108
+ ViewedExamResult: "viewed_exam_result",
109
+ PrintedExamResult: "printed_exam_result",
110
+ ViewedAttendance: "viewed_attendance",
111
+ UpdatedUser: "updated_user",
112
+ CreatedNewUser: "created_new_user",
113
+ ImportedUser: "imported_user",
114
+ ImportedRemoveUser: "imported_remove_user",
115
+ DeletedUser: "deleted_user",
116
+ CompletedQNA: "completed_QNA",
117
+ AnsweredQNA: "answered_QNA",
118
+ RemoveMessageQNA: "remove_message_QNA",
119
+ UpdateMessageQNA: "update_message_QNA",
120
+ UpdatedAttendance: "updated_attendance",
121
+ AddedTeacherToClass: "added_teacher_to_class",
122
+ RemovedTeacherFromClass: "removed_teacher_from_class",
123
+ AddedStudentToClass: "added_student_to_class",
124
+ RemovedStudentFromClass: "removed_student_from_class"
125
+ };
105
126
  var PrintHeaderClassName = "print-header";
106
127
  var PrintTitleClassName = "print-title";
107
128
  var PrintContentClassName = "print-content";
@@ -144,6 +165,13 @@ function _objectWithoutPropertiesLoose(source, excluded) {
144
165
  }
145
166
  return target;
146
167
  }
168
+ function _taggedTemplateLiteralLoose(strings, raw) {
169
+ if (!raw) {
170
+ raw = strings.slice(0);
171
+ }
172
+ strings.raw = raw;
173
+ return strings;
174
+ }
147
175
 
148
176
  var styles = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","btn-login-google":"_2HqmH","block-login":"_wWIyO","box-login":"_38Lo1","btn-primary":"_rd4Uy","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw","truncate":"_3NJzN","headers":"_3xnI5","logo-container":"_3YG70","tabBox":"_1CQPn","routerBox":"_3hx2T","tabText":"_3UyhW","router-link-active":"_1TGKA","router-link":"_1AqMh","userImg":"_2RI6G","disabled-link":"_3aVHg","line-clamp":"_3fpky"};
149
177
 
@@ -456,6 +484,9 @@ var apiLoginWithAccessToken = function apiLoginWithAccessToken(body, domain) {
456
484
  headers: (_headers = {}, _headers[AcademyHeaders] = domain, _headers)
457
485
  });
458
486
  };
487
+ var apiLoginSuperAdminWithAccessToken = function apiLoginSuperAdminWithAccessToken(body) {
488
+ return api.post(AUTH_SUPER_ADMIN_URL + "/login/access-token", body);
489
+ };
459
490
 
460
491
  var useGoogleSignOut = function useGoogleSignOut(props) {
461
492
  var dispatch = useDispatch();
@@ -484,7 +515,10 @@ var useGoogleSignOut = function useGoogleSignOut(props) {
484
515
  localStorage.removeItem(ACADEMY_DOMAIN);
485
516
  }
486
517
  try {
518
+ var _window$gapi, _window$gapi$auth, _auth2$signOut;
487
519
  signOut();
520
+ var auth2 = (_window$gapi = window.gapi) === null || _window$gapi === void 0 ? void 0 : (_window$gapi$auth = _window$gapi.auth2) === null || _window$gapi$auth === void 0 ? void 0 : _window$gapi$auth.getAuthInstance();
521
+ auth2 === null || auth2 === void 0 ? void 0 : (_auth2$signOut = auth2.signOut) === null || _auth2$signOut === void 0 ? void 0 : _auth2$signOut.call(auth2);
488
522
  } catch (error) {
489
523
  console.log({
490
524
  error: error
@@ -535,6 +569,10 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
535
569
  t = _useTranslation.t;
536
570
  var _useGoogleSignOut = useGoogleSignOut({}),
537
571
  handleSignOut = _useGoogleSignOut.handleSignOut;
572
+ var user = useSelector(function (state) {
573
+ var _state$common;
574
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
575
+ });
538
576
  var searchParams = new URLSearchParams(window.location.search);
539
577
  var paramDomain = searchParams.get('domain');
540
578
  var handleLoginGoogle = function handleLoginGoogle(data, isLogout) {
@@ -547,16 +585,28 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
547
585
  return Promise.resolve(handleLogin(function () {
548
586
  return new Promise(function (resolve, reject) {
549
587
  try {
550
- var _temp = _catch(function () {
588
+ var _temp3 = _catch(function () {
551
589
  return Promise.resolve(academyDomain ? apiLoginGoogle(data) : apiLoginGoogleSuperAdmin(data)).then(function (loginResponse) {
590
+ function _temp2() {
591
+ resolve(result);
592
+ }
552
593
  var result = loginResponse.data;
553
- resolve(result);
594
+ var _temp = function () {
595
+ if (loginResponse.status === 204 && academyDomain) {
596
+ localStorage.removeItem(ACADEMY_DOMAIN);
597
+ return Promise.resolve(apiLoginGoogleSuperAdmin(data)).then(function (_apiLoginGoogleSuperA) {
598
+ loginResponse = _apiLoginGoogleSuperA;
599
+ result = loginResponse.data;
600
+ });
601
+ }
602
+ }();
603
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
554
604
  });
555
605
  }, function (error) {
556
606
  !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
557
607
  reject(error);
558
608
  });
559
- return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
609
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(function () {}) : void 0);
560
610
  } catch (e) {
561
611
  return Promise.reject(e);
562
612
  }
@@ -575,15 +625,16 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
575
625
  return Promise.resolve(handleLogin(function () {
576
626
  return new Promise(function (resolve, reject) {
577
627
  try {
578
- var _temp2 = _catch(function () {
579
- return Promise.resolve(apiLoginWithAccessToken(data, domain)).then(function (loginResponse) {
628
+ var isSuperAdminUser = user && !user.academyDomain;
629
+ var _temp4 = _catch(function () {
630
+ return Promise.resolve(isSuperAdminUser ? apiLoginSuperAdminWithAccessToken(data) : apiLoginWithAccessToken(data, domain)).then(function (loginResponse) {
580
631
  var result = loginResponse.data;
581
632
  resolve(result);
582
633
  });
583
634
  }, function (error) {
584
635
  reject(error);
585
636
  });
586
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
637
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
587
638
  } catch (e) {
588
639
  return Promise.reject(e);
589
640
  }
@@ -598,11 +649,11 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
598
649
  isLogout = true;
599
650
  }
600
651
  try {
601
- var _temp4 = function _temp4() {
652
+ var _temp6 = function _temp6() {
602
653
  dispatch(setLoading(false));
603
654
  };
604
655
  dispatch(setLoading(true));
605
- var _temp3 = _catch(function () {
656
+ var _temp5 = _catch(function () {
606
657
  return Promise.resolve(apiLogin()).then(function (loginResponse) {
607
658
  var isFirstLogin = loginResponse.isFirstLogin,
608
659
  token = loginResponse.token,
@@ -619,7 +670,7 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
619
670
  alert(getErrorMessage(t, error));
620
671
  isLogout && handleSignOut();
621
672
  });
622
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
673
+ return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
623
674
  } catch (e) {
624
675
  return Promise.reject(e);
625
676
  }
@@ -944,13 +995,16 @@ var defaultInfo = {
944
995
  captcha: "",
945
996
  rememberMe: false
946
997
  };
947
- var useLogin$1 = function useLogin() {
998
+ var PAGE_TITLE = "sign_in";
999
+ var useLogin$1 = function useLogin(homeAcademyUrl, homeUrl) {
948
1000
  var _useState = useState(false),
949
1001
  openLogin = _useState[0],
950
1002
  setOpenLogin = _useState[1];
951
1003
  var _useState2 = useState(),
952
1004
  infoUser = _useState2[0],
953
1005
  setInfoUser = _useState2[1];
1006
+ var _useTranslation = useTranslation(),
1007
+ t = _useTranslation.t;
954
1008
  var toggle = useCallback(function () {
955
1009
  setOpenLogin(!openLogin);
956
1010
  }, [openLogin]);
@@ -968,8 +1022,13 @@ var useLogin$1 = function useLogin() {
968
1022
  }, [gapi]);
969
1023
  useEffect(function () {
970
1024
  var token = getAccessToken();
971
- if (token) window.location.href = "/";
972
- }, []);
1025
+ var academyDomain = getAcademyDomain();
1026
+ if (token && academyDomain) window.location.href = homeAcademyUrl;
1027
+ if (token && !academyDomain) window.location.href = homeUrl;
1028
+ }, [homeAcademyUrl, homeUrl]);
1029
+ useEffect(function () {
1030
+ document.title = t("study_peak") + " | " + t(PAGE_TITLE);
1031
+ }, [t]);
973
1032
  return {
974
1033
  defaultInfo: defaultInfo,
975
1034
  openLogin: openLogin,
@@ -1079,7 +1138,7 @@ var _excluded = ["history"];
1079
1138
  var Login = function Login(_ref) {
1080
1139
  var history = _ref.history,
1081
1140
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1082
- var _useLogin = useLogin$1(),
1141
+ var _useLogin = useLogin$1(rest.homeAcademyUrl, rest.homeUrl),
1083
1142
  defaultInfo = _useLogin.defaultInfo;
1084
1143
  useLanguage(history);
1085
1144
  return React__default.createElement("div", {
@@ -1362,9 +1421,9 @@ var NotFound = function NotFound(_ref) {
1362
1421
  var history = _ref.history;
1363
1422
  var _useTranslation = useTranslation(),
1364
1423
  t = _useTranslation.t;
1365
- useLanguage(history);
1424
+ history && useLanguage(history);
1366
1425
  useEffect(function () {
1367
- document.title = t(TITLE);
1426
+ document.title = t("study_peak") + " | " + t(TITLE);
1368
1427
  }, [t]);
1369
1428
  return React__default.createElement("div", {
1370
1429
  className: "not-found d-flex justify-content-center"
@@ -1423,11 +1482,21 @@ var getUserAcademies = function getUserAcademies(role) {
1423
1482
  }
1424
1483
  });
1425
1484
  };
1485
+ var getAcademyByDomainApi = function getAcademyByDomainApi(domain, role) {
1486
+ return api.get(SUPER_ADMIN_ACADEMY_URL + "/domain/" + domain, {
1487
+ params: {
1488
+ role: role
1489
+ }
1490
+ });
1491
+ };
1426
1492
  var getAcademyDetail = function getAcademyDetail() {
1427
1493
  return api.get(ACADEMY_URL + "/detail");
1428
1494
  };
1429
- var switchAcademy = function switchAcademy(academyId) {
1430
- return api.post(ACADEMY_URL + "/switch-academy?academyId=" + academyId);
1495
+ var switchAcademy = function switchAcademy(academyId, role) {
1496
+ return api.post(ACADEMY_URL + "/" + academyId + "/switch-academy/" + role);
1497
+ };
1498
+ var switchSuperAdminAcademy = function switchSuperAdminAcademy(academyId, role) {
1499
+ return api.post(SUPER_ADMIN_ACADEMY_URL + "/" + academyId + "/switch-academy/" + role);
1431
1500
  };
1432
1501
 
1433
1502
  var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
@@ -1453,6 +1522,7 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1453
1522
  var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
1454
1523
  var academyDomain = user === null || user === void 0 ? void 0 : user.academyDomain;
1455
1524
  var pathname = window.location.pathname;
1525
+ var search = window.location.search;
1456
1526
  var resetAuth = function resetAuth() {
1457
1527
  handleSignOut();
1458
1528
  };
@@ -1480,7 +1550,7 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1480
1550
  }
1481
1551
  };
1482
1552
  var checkRoleUser = useCallback(function () {
1483
- if (!user) return;
1553
+ if (!(user !== null && user !== void 0 && user.email)) return;
1484
1554
  if (!roles.includes(role) && !!academyDomain) {
1485
1555
  alert(t("user_not_allow_to_register_role", {
1486
1556
  user: user.email,
@@ -1488,7 +1558,7 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1488
1558
  }));
1489
1559
  resetAuth();
1490
1560
  }
1491
- }, [role, JSON.stringify(user)]);
1561
+ }, [role, user === null || user === void 0 ? void 0 : user.email, academyDomain, JSON.stringify(roles)]);
1492
1562
  var loadInfo = function loadInfo() {
1493
1563
  try {
1494
1564
  var _temp4 = function _temp4() {
@@ -1496,6 +1566,7 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1496
1566
  };
1497
1567
  var token = getAccessToken();
1498
1568
  if (!token) {
1569
+ localStorage.setItem(REDIRECT_URL, "" + pathname + search);
1499
1570
  resetAuth();
1500
1571
  return Promise.resolve();
1501
1572
  }
@@ -1566,8 +1637,10 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1566
1637
  }, [pusherRegisterUrls.join(","), academyDomain, pathname, isReadyRegisterPusher, currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec2 = currentPusher.connection) === null || _currentPusher$connec2 === void 0 ? void 0 : _currentPusher$connec2.state]);
1567
1638
  useEffect(function () {
1568
1639
  !user && loadInfo();
1569
- !!user && checkRoleUser();
1570
- }, [JSON.stringify(user)]);
1640
+ }, []);
1641
+ useEffect(function () {
1642
+ checkRoleUser();
1643
+ }, [checkRoleUser]);
1571
1644
  useEffect(function () {
1572
1645
  handleGetAcademyDetail();
1573
1646
  }, [academyDomain]);
@@ -1579,6 +1652,33 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1579
1652
  }
1580
1653
  };
1581
1654
  }, [registerPusher]);
1655
+ return {
1656
+ user: user
1657
+ };
1658
+ };
1659
+
1660
+ var loadingStyle$1 = {
1661
+ minWidth: "100vw",
1662
+ minHeight: "100vh",
1663
+ position: "fixed",
1664
+ top: 0,
1665
+ left: 0,
1666
+ zIndex: 999999999,
1667
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
1668
+ display: "flex",
1669
+ justifyContent: "center",
1670
+ alignItems: "center"
1671
+ };
1672
+ var LoadingComponent = function LoadingComponent(_ref) {
1673
+ var isLoading = _ref.isLoading;
1674
+ return isLoading ? React__default.createElement("div", {
1675
+ style: loadingStyle$1
1676
+ }, React__default.createElement("div", {
1677
+ className: "spinner-border text-secondary",
1678
+ role: "status"
1679
+ }, React__default.createElement("span", {
1680
+ className: "sr-only"
1681
+ }))) : null;
1582
1682
  };
1583
1683
 
1584
1684
  var LayoutContext = function LayoutContext(_ref) {
@@ -1586,8 +1686,14 @@ var LayoutContext = function LayoutContext(_ref) {
1586
1686
  role = _ref.role,
1587
1687
  _ref$pusherRegisterUr = _ref.pusherRegisterUrls,
1588
1688
  pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr;
1689
+ var user = useSelector(function (state) {
1690
+ var _state$common;
1691
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
1692
+ });
1589
1693
  useLayoutContext(role, pusherRegisterUrls);
1590
- return React__default.createElement(Fragment$1, null, children);
1694
+ if (!(user !== null && user !== void 0 && user.email)) return React__default.createElement(LoadingComponent, {
1695
+ isLoading: true
1696
+ });else return React__default.createElement(Fragment$1, null, children);
1591
1697
  };
1592
1698
 
1593
1699
  var ConfirmDialog = function ConfirmDialog(_ref) {
@@ -1740,7 +1846,7 @@ var formatTime = (function (time, ORIGINAL_FORMAT, FORMAT) {
1740
1846
  var diffFromNow = (function (time, unitOfTime, targetTime) {
1741
1847
  if (time === DATE_MIN_VALUE || targetTime === DATE_MIN_VALUE) return 0;
1742
1848
  try {
1743
- var now = !!targetTime ? moment() : moment.utc(targetTime).local();
1849
+ var now = !targetTime ? moment() : moment.utc(targetTime).local();
1744
1850
  return now.diff(moment.utc(time).local(), unitOfTime);
1745
1851
  } catch (_unused) {
1746
1852
  return "";
@@ -2184,7 +2290,7 @@ var user_academy = {
2184
2290
  remove_failed: "아카데미에서 사용자를 제거하지 못했습니다",
2185
2291
  remove_successfully: "아카데미에서 사용자를 성공적으로 제거했습니다",
2186
2292
  update_user_roles_failed: "아카데미 사용자 역할 업데이트에 실패했습니다",
2187
- update_user_roles__successfully: "아카데미 사용자 역할을 성공적으로 제거했습니다",
2293
+ update_user_roles_successfully: "아카데미 사용자 역할을 성공적으로 제거했습니다",
2188
2294
  get_failed: "아카데미 사용자 가져오기 실패"
2189
2295
  };
2190
2296
  var get_users_failed = "사용자 가져오기 실패";
@@ -2516,9 +2622,97 @@ var number_of_correct_answers = "정답 수";
2516
2622
  var total_solve_time = "총 풀이 시간";
2517
2623
  var number_of_answer = "{{ number }} 개";
2518
2624
  var time_comparison = "시간 비교";
2625
+ var import_student_exam_results = "학생 시험 결과 가져오기";
2626
+ var file_required = "파일이 필요합니다";
2627
+ var exam_required = "시험이 필요합니다";
2628
+ var teacher_required = "선생님은 필수입니다";
2519
2629
  var total_users = "총 사용자";
2520
2630
  var added_date = "추가된 날짜";
2631
+ var sync_exam_results = "시험 결과 동기화";
2521
2632
  var update_data_fail = "데이터 업데이트 실패";
2633
+ var are_you_sure_to_sync_exam_results_to_academy = "시험 결과를 아카데미 {{ academyName }}에 동기화하시겠습니까(백그라운드에서 실행되며 시간이 다소 소요됨)";
2634
+ var messages = {
2635
+ exam_sessions_are_being_synchronized: "{{ total }} 개의 시험 세션이 동기화되고 있습니다"
2636
+ };
2637
+ var submit = "제출하다";
2638
+ var must_select_a_teacher_first = "먼저 교사를 선택해야 합니다";
2639
+ var student_grade_is_invalid = "학생 등급은 1에서 12 사이여야 합니다";
2640
+ var recent_users = "최근 사용자";
2641
+ var recent_students = "최근 학생";
2642
+ var viewed_user = "본 사용자";
2643
+ var viewed_QNA = "조회한 질문&답변";
2644
+ var viewed_exam_result = "시험 결과를 보았습니다";
2645
+ var printed_exam_result = "인쇄된 시험 결과";
2646
+ var viewed_attendance = "출석 조회";
2647
+ var updated_user = "업데이트된 사용자";
2648
+ var created_new_user = "새 사용자가 생성되었습니다";
2649
+ var imported_user = "가져온 사용자";
2650
+ var imported_remove_user = "가져온 사용자 제거";
2651
+ var deleted_user = "삭제된 사용자";
2652
+ var completed_QNA = "완료된 질문 및 답변";
2653
+ var answered_QNA = "답변된 질문&답변";
2654
+ var remove_message_QNA = "메시지 질문 및 답변 제거";
2655
+ var update_message_QNA = "메시지 질문 및 답변 업데이트";
2656
+ var updated_attendance = "업데이트된 출석";
2657
+ var added_teacher_to_class = "수업에 교사를 추가했습니다.";
2658
+ var removed_teacher_from_class = "수업에서 교사를 제거했습니다";
2659
+ var added_student_to_class = "수업에 학생을 추가했습니다.";
2660
+ var removed_student_from_class = "수업에서 학생을 제거했습니다.";
2661
+ var exam_detail = "시험 세부정보";
2662
+ var study_peak = "스터디 피크";
2663
+ var enter_pass_code = "비밀번호를 입력하세요";
2664
+ var join_an_academy = "아카데미에 가입하세요";
2665
+ var select_an_academy = "아카데미를 선택하세요";
2666
+ var pass_code = "비밀번호";
2667
+ var enter_academy_pass_code = "학원비밀번호를 입력하세요";
2668
+ var authentication_failed = "인증 실패!";
2669
+ var verifying = "확인 중...";
2670
+ var login = "로그인";
2671
+ var please_wait_a_moment = "잠시만 기다려주세요";
2672
+ var oops_sorry = "이런, 미안해요!";
2673
+ var invitation_token_not_provided = "초대 토큰이 제공되지 않았습니다";
2674
+ var academy_invitation = "아카데미 초대";
2675
+ var join_academy = "아카데미 가입";
2676
+ var you_need_to_log_out_of_your_current_academy_to_use_the_invite_link = "초대 링크를 사용하려면 현재 아카데미에서 로그아웃해야 합니다";
2677
+ var you_need_to_log_out_of_your_current_academy_to_use_the_academy_join_link = "아카데미 가입 링크를 이용하려면 현재 아카데미에서 로그아웃해야 합니다";
2678
+ var enter_academy_passcode = "아카데미 비밀번호를 입력하세요";
2679
+ var academy_passcode = "아카데미 비밀번호";
2680
+ var academy_invite = "아카데미 초대";
2681
+ var academy_invite_new_students = "아카데미 신입생 초대";
2682
+ var create_passcode = "비밀번호 생성";
2683
+ var update_passcode = "비밀번호 업데이트";
2684
+ var is_active = "활성화됨";
2685
+ var limited_emails = "제한된 이메일";
2686
+ var limited_used_times = "제한된 사용 시간";
2687
+ var used_times = "사용시간";
2688
+ var update_data_successfully = "데이터 업데이트 성공";
2689
+ var reset_data_successfully = "데이터 재설정 성공";
2690
+ var limited_used_times_is_required = "제한된 사용 시간이 필요합니다";
2691
+ var limited_emails_is_required = "제한된 이메일이 필요합니다";
2692
+ var are_you_sure_you_want_to_delete_the_passcode = "비밀번호({{passcode}})를 삭제하시겠습니까?";
2693
+ var expired_time = "만료된 시간";
2694
+ var expired_time_is_required = "만료된 시간은 필수 항목입니다.";
2695
+ var total_emails = "총 이메일";
2696
+ var academy_invite_detail = "아카데미 초대 세부정보";
2697
+ var are_you_sure_to_delete_academy_invite = "이 아카데미 초대를 삭제하시겠습니까?";
2698
+ var day = "낮";
2699
+ var days = "날";
2700
+ var emails = "이메일";
2701
+ var is_accepted = "승인됨";
2702
+ var re_send = "다시 보내기";
2703
+ var revoke = "취소";
2704
+ var resend_invite_successfully = "초대를 다시 보냈습니다.";
2705
+ var revoke_invite_successfully = "초대를 취소했습니다.";
2706
+ var create_invite_successfully = "초대를 성공적으로 만들었습니다";
2707
+ var must_be_a_number = "숫자여야 합니다.";
2708
+ var is_revoked = "취소됨";
2709
+ var is_sent = "전송됨";
2710
+ var is_send = "전송됨";
2711
+ var expired_date = "만료일";
2712
+ var reset_passcode = "사용된 시간 비밀번호 재설정";
2713
+ var at_academy = "학원에서";
2714
+ var sent_at = "보낸 시간";
2715
+ var create_data_successfully = "데이터를 성공적으로 생성했습니다";
2522
2716
  var lang_ko = {
2523
2717
  problem_solving: problem_solving,
2524
2718
  my_story: my_story,
@@ -3171,9 +3365,95 @@ var lang_ko = {
3171
3365
  total_solve_time: total_solve_time,
3172
3366
  number_of_answer: number_of_answer,
3173
3367
  time_comparison: time_comparison,
3368
+ import_student_exam_results: import_student_exam_results,
3369
+ file_required: file_required,
3370
+ exam_required: exam_required,
3371
+ teacher_required: teacher_required,
3174
3372
  total_users: total_users,
3175
3373
  added_date: added_date,
3176
- update_data_fail: update_data_fail
3374
+ sync_exam_results: sync_exam_results,
3375
+ update_data_fail: update_data_fail,
3376
+ are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy,
3377
+ messages: messages,
3378
+ submit: submit,
3379
+ must_select_a_teacher_first: must_select_a_teacher_first,
3380
+ student_grade_is_invalid: student_grade_is_invalid,
3381
+ recent_users: recent_users,
3382
+ recent_students: recent_students,
3383
+ viewed_user: viewed_user,
3384
+ viewed_QNA: viewed_QNA,
3385
+ viewed_exam_result: viewed_exam_result,
3386
+ printed_exam_result: printed_exam_result,
3387
+ viewed_attendance: viewed_attendance,
3388
+ updated_user: updated_user,
3389
+ created_new_user: created_new_user,
3390
+ imported_user: imported_user,
3391
+ imported_remove_user: imported_remove_user,
3392
+ deleted_user: deleted_user,
3393
+ completed_QNA: completed_QNA,
3394
+ answered_QNA: answered_QNA,
3395
+ remove_message_QNA: remove_message_QNA,
3396
+ update_message_QNA: update_message_QNA,
3397
+ updated_attendance: updated_attendance,
3398
+ added_teacher_to_class: added_teacher_to_class,
3399
+ removed_teacher_from_class: removed_teacher_from_class,
3400
+ added_student_to_class: added_student_to_class,
3401
+ removed_student_from_class: removed_student_from_class,
3402
+ exam_detail: exam_detail,
3403
+ study_peak: study_peak,
3404
+ enter_pass_code: enter_pass_code,
3405
+ join_an_academy: join_an_academy,
3406
+ select_an_academy: select_an_academy,
3407
+ pass_code: pass_code,
3408
+ enter_academy_pass_code: enter_academy_pass_code,
3409
+ authentication_failed: authentication_failed,
3410
+ verifying: verifying,
3411
+ login: login,
3412
+ please_wait_a_moment: please_wait_a_moment,
3413
+ oops_sorry: oops_sorry,
3414
+ invitation_token_not_provided: invitation_token_not_provided,
3415
+ academy_invitation: academy_invitation,
3416
+ join_academy: join_academy,
3417
+ you_need_to_log_out_of_your_current_academy_to_use_the_invite_link: you_need_to_log_out_of_your_current_academy_to_use_the_invite_link,
3418
+ you_need_to_log_out_of_your_current_academy_to_use_the_academy_join_link: you_need_to_log_out_of_your_current_academy_to_use_the_academy_join_link,
3419
+ enter_academy_passcode: enter_academy_passcode,
3420
+ academy_passcode: academy_passcode,
3421
+ academy_invite: academy_invite,
3422
+ academy_invite_new_students: academy_invite_new_students,
3423
+ create_passcode: create_passcode,
3424
+ update_passcode: update_passcode,
3425
+ is_active: is_active,
3426
+ limited_emails: limited_emails,
3427
+ limited_used_times: limited_used_times,
3428
+ used_times: used_times,
3429
+ update_data_successfully: update_data_successfully,
3430
+ reset_data_successfully: reset_data_successfully,
3431
+ limited_used_times_is_required: limited_used_times_is_required,
3432
+ limited_emails_is_required: limited_emails_is_required,
3433
+ are_you_sure_you_want_to_delete_the_passcode: are_you_sure_you_want_to_delete_the_passcode,
3434
+ expired_time: expired_time,
3435
+ expired_time_is_required: expired_time_is_required,
3436
+ total_emails: total_emails,
3437
+ academy_invite_detail: academy_invite_detail,
3438
+ are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite,
3439
+ day: day,
3440
+ days: days,
3441
+ emails: emails,
3442
+ is_accepted: is_accepted,
3443
+ re_send: re_send,
3444
+ revoke: revoke,
3445
+ resend_invite_successfully: resend_invite_successfully,
3446
+ revoke_invite_successfully: revoke_invite_successfully,
3447
+ create_invite_successfully: create_invite_successfully,
3448
+ must_be_a_number: must_be_a_number,
3449
+ is_revoked: is_revoked,
3450
+ is_sent: is_sent,
3451
+ is_send: is_send,
3452
+ expired_date: expired_date,
3453
+ reset_passcode: reset_passcode,
3454
+ at_academy: at_academy,
3455
+ sent_at: sent_at,
3456
+ create_data_successfully: create_data_successfully
3177
3457
  };
3178
3458
 
3179
3459
  var problem_solving$1 = "Problem Solving";
@@ -3825,16 +4105,103 @@ var choose$1 = "Choose";
3825
4105
  var additional_duration$1 = "Additional duration";
3826
4106
  var enter_textbook_name_to_search$1 = "Enter textbook name to search";
3827
4107
  var select_class_placeholder$1 = "Select class...";
3828
- var user_name$1 = "Username";
4108
+ var user_name$1 = "User Name";
3829
4109
  var vulnerable_detail$1 = "Other students had a high percentage of correct answers, but I could not answer these questions correctly.";
3830
4110
  var protracted_problem_detail$1 = "Compare the solution time among the correct answers.";
3831
4111
  var number_of_correct_answers$1 = "Number of correct answers";
3832
4112
  var total_solve_time$1 = "Total solve time";
3833
4113
  var number_of_answer$1 = "{{ number }}";
3834
4114
  var time_comparison$1 = "Time comparison";
4115
+ var import_student_exam_results$1 = "Import Student Exam Results";
4116
+ var file_required$1 = "File is required";
4117
+ var exam_required$1 = "Exam is required";
4118
+ var teacher_required$1 = "Teacher is required";
3835
4119
  var total_users$1 = "Total users";
3836
4120
  var added_date$1 = "Added date";
4121
+ var sync_exam_results$1 = "Sync exam results";
3837
4122
  var update_data_fail$1 = "Update data fail";
4123
+ 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)";
4124
+ var messages$1 = {
4125
+ exam_sessions_are_being_synchronized: "{{ total }} exam sessions are being synchronized"
4126
+ };
4127
+ var submit$1 = "Submit";
4128
+ var must_select_a_teacher_first$1 = "Must select a teacher first";
4129
+ var student_grade_is_invalid$1 = "Student grade must be from 1 to 12";
4130
+ var recent_users$1 = "Recent Users";
4131
+ var recent_students$1 = "Recent Students";
4132
+ var viewed_user$1 = "Viewed User";
4133
+ var viewed_QNA$1 = "Viewed Question&Answer";
4134
+ var viewed_exam_result$1 = "Viewed Exam Results";
4135
+ var printed_exam_result$1 = "Printed Exam Result";
4136
+ var viewed_attendance$1 = "Viewed Attendance";
4137
+ var updated_user$1 = "Updated User";
4138
+ var created_new_user$1 = "Created New User";
4139
+ var imported_user$1 = "Imported User";
4140
+ var imported_remove_user$1 = "Imported Remove User";
4141
+ var deleted_user$1 = "Deleted User";
4142
+ var completed_QNA$1 = "Completed Question&Answer";
4143
+ var answered_QNA$1 = "Answered Question&Answer";
4144
+ var remove_message_QNA$1 = "Remove Message Question&Answer";
4145
+ var update_message_QNA$1 = "Update Message Question&Answer";
4146
+ var updated_attendance$1 = "Updated Attendance";
4147
+ var added_teacher_to_class$1 = "Added Teacher To Class";
4148
+ var removed_teacher_from_class$1 = "Removed Teacher From Class";
4149
+ var added_student_to_class$1 = "Added Student To Class";
4150
+ var removed_student_from_class$1 = "Removed Student From Class";
4151
+ var exam_detail$1 = "Exam detail";
4152
+ var study_peak$1 = "Study Peak";
4153
+ var enter_pass_code$1 = "Enter pass code";
4154
+ var join_an_academy$1 = "Join an academy";
4155
+ var select_an_academy$1 = "Select an academy";
4156
+ var pass_code$1 = "Pass Code";
4157
+ var enter_academy_pass_code$1 = "Enter academy pass code";
4158
+ var authentication_failed$1 = "Authentication failed!";
4159
+ var verifying$1 = "Verifying...";
4160
+ var login$1 = "Login";
4161
+ var please_wait_a_moment$1 = "Please wait a moment";
4162
+ var oops_sorry$1 = "Oops, sorry!";
4163
+ var invitation_token_not_provided$1 = "Invitation token not provided";
4164
+ var academy_invitation$1 = "Academy invitation";
4165
+ var join_academy$1 = "Join academy";
4166
+ var you_need_to_log_out_of_your_current_academy_to_use_the_invite_link$1 = "You need to log out of your current academy to use the invite link";
4167
+ var you_need_to_log_out_of_your_current_academy_to_use_the_academy_join_link$1 = "You need to log out of your current academy to use the academy join link";
4168
+ var enter_academy_passcode$1 = "Enter Academy Pass Code";
4169
+ var academy_passcode$1 = "Academy Pass Code";
4170
+ var academy_invite$1 = "Academy Invite";
4171
+ var academy_invite_new_students$1 = "Academy Invite New Students";
4172
+ var create_passcode$1 = "Create Pass Code";
4173
+ var update_passcode$1 = "Update Pass Code";
4174
+ var is_active$1 = "IsActive";
4175
+ var limited_emails$1 = "Limited Emails";
4176
+ var limited_used_times$1 = "Limited Used Times";
4177
+ var used_times$1 = "Used Times";
4178
+ var update_data_successfully$1 = "Update Data Successfully";
4179
+ var reset_data_successfully$1 = "Reset Data Successfully";
4180
+ var limited_used_times_is_required$1 = "Limited Used Times is required";
4181
+ var limited_emails_is_required$1 = "Limited Emails is Required";
4182
+ var are_you_sure_you_want_to_delete_the_passcode$1 = "Are you sure you want to delete the passcode: {{passcode}}?";
4183
+ var expired_time$1 = "Expired Time";
4184
+ var expired_time_is_required$1 = "Expiry Time is required";
4185
+ var total_emails$1 = "Total Emails";
4186
+ var academy_invite_detail$1 = "Academy Invite Detail";
4187
+ var are_you_sure_to_delete_academy_invite$1 = "Are you sure to delete this academy invite?";
4188
+ var day$1 = "day";
4189
+ var days$1 = "days";
4190
+ var emails$1 = "Emails";
4191
+ var is_accepted$1 = "Is Accepted";
4192
+ var re_send$1 = "Resend";
4193
+ var revoke$1 = "Revoke";
4194
+ var resend_invite_successfully$1 = "Resend invite successfully";
4195
+ var revoke_invite_successfully$1 = "Revoke invite successfully";
4196
+ var create_invite_successfully$1 = "Create invite successfully";
4197
+ var must_be_a_number$1 = "Must be a number";
4198
+ var is_revoked$1 = "Is Revoked";
4199
+ var is_sent$1 = "Is Sent";
4200
+ var is_send$1 = "Is Send";
4201
+ var expired_date$1 = "Expired Date";
4202
+ var reset_passcode$1 = "Reset Used Times Pass Code";
4203
+ var at_academy$1 = "At academy";
4204
+ var sent_at$1 = "Sent at";
3838
4205
  var lang_en = {
3839
4206
  problem_solving: problem_solving$1,
3840
4207
  my_story: my_story$1,
@@ -4487,9 +4854,94 @@ var lang_en = {
4487
4854
  total_solve_time: total_solve_time$1,
4488
4855
  number_of_answer: number_of_answer$1,
4489
4856
  time_comparison: time_comparison$1,
4857
+ import_student_exam_results: import_student_exam_results$1,
4858
+ file_required: file_required$1,
4859
+ exam_required: exam_required$1,
4860
+ teacher_required: teacher_required$1,
4490
4861
  total_users: total_users$1,
4491
4862
  added_date: added_date$1,
4492
- update_data_fail: update_data_fail$1
4863
+ sync_exam_results: sync_exam_results$1,
4864
+ update_data_fail: update_data_fail$1,
4865
+ are_you_sure_to_sync_exam_results_to_academy: are_you_sure_to_sync_exam_results_to_academy$1,
4866
+ messages: messages$1,
4867
+ submit: submit$1,
4868
+ must_select_a_teacher_first: must_select_a_teacher_first$1,
4869
+ student_grade_is_invalid: student_grade_is_invalid$1,
4870
+ recent_users: recent_users$1,
4871
+ recent_students: recent_students$1,
4872
+ viewed_user: viewed_user$1,
4873
+ viewed_QNA: viewed_QNA$1,
4874
+ viewed_exam_result: viewed_exam_result$1,
4875
+ printed_exam_result: printed_exam_result$1,
4876
+ viewed_attendance: viewed_attendance$1,
4877
+ updated_user: updated_user$1,
4878
+ created_new_user: created_new_user$1,
4879
+ imported_user: imported_user$1,
4880
+ imported_remove_user: imported_remove_user$1,
4881
+ deleted_user: deleted_user$1,
4882
+ completed_QNA: completed_QNA$1,
4883
+ answered_QNA: answered_QNA$1,
4884
+ remove_message_QNA: remove_message_QNA$1,
4885
+ update_message_QNA: update_message_QNA$1,
4886
+ updated_attendance: updated_attendance$1,
4887
+ added_teacher_to_class: added_teacher_to_class$1,
4888
+ removed_teacher_from_class: removed_teacher_from_class$1,
4889
+ added_student_to_class: added_student_to_class$1,
4890
+ removed_student_from_class: removed_student_from_class$1,
4891
+ exam_detail: exam_detail$1,
4892
+ study_peak: study_peak$1,
4893
+ enter_pass_code: enter_pass_code$1,
4894
+ join_an_academy: join_an_academy$1,
4895
+ select_an_academy: select_an_academy$1,
4896
+ pass_code: pass_code$1,
4897
+ enter_academy_pass_code: enter_academy_pass_code$1,
4898
+ authentication_failed: authentication_failed$1,
4899
+ verifying: verifying$1,
4900
+ login: login$1,
4901
+ please_wait_a_moment: please_wait_a_moment$1,
4902
+ oops_sorry: oops_sorry$1,
4903
+ invitation_token_not_provided: invitation_token_not_provided$1,
4904
+ academy_invitation: academy_invitation$1,
4905
+ join_academy: join_academy$1,
4906
+ you_need_to_log_out_of_your_current_academy_to_use_the_invite_link: you_need_to_log_out_of_your_current_academy_to_use_the_invite_link$1,
4907
+ you_need_to_log_out_of_your_current_academy_to_use_the_academy_join_link: you_need_to_log_out_of_your_current_academy_to_use_the_academy_join_link$1,
4908
+ enter_academy_passcode: enter_academy_passcode$1,
4909
+ academy_passcode: academy_passcode$1,
4910
+ academy_invite: academy_invite$1,
4911
+ academy_invite_new_students: academy_invite_new_students$1,
4912
+ create_passcode: create_passcode$1,
4913
+ update_passcode: update_passcode$1,
4914
+ is_active: is_active$1,
4915
+ limited_emails: limited_emails$1,
4916
+ limited_used_times: limited_used_times$1,
4917
+ used_times: used_times$1,
4918
+ update_data_successfully: update_data_successfully$1,
4919
+ reset_data_successfully: reset_data_successfully$1,
4920
+ limited_used_times_is_required: limited_used_times_is_required$1,
4921
+ limited_emails_is_required: limited_emails_is_required$1,
4922
+ are_you_sure_you_want_to_delete_the_passcode: are_you_sure_you_want_to_delete_the_passcode$1,
4923
+ expired_time: expired_time$1,
4924
+ expired_time_is_required: expired_time_is_required$1,
4925
+ total_emails: total_emails$1,
4926
+ academy_invite_detail: academy_invite_detail$1,
4927
+ are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite$1,
4928
+ day: day$1,
4929
+ days: days$1,
4930
+ emails: emails$1,
4931
+ is_accepted: is_accepted$1,
4932
+ re_send: re_send$1,
4933
+ revoke: revoke$1,
4934
+ resend_invite_successfully: resend_invite_successfully$1,
4935
+ revoke_invite_successfully: revoke_invite_successfully$1,
4936
+ create_invite_successfully: create_invite_successfully$1,
4937
+ must_be_a_number: must_be_a_number$1,
4938
+ is_revoked: is_revoked$1,
4939
+ is_sent: is_sent$1,
4940
+ is_send: is_send$1,
4941
+ expired_date: expired_date$1,
4942
+ reset_passcode: reset_passcode$1,
4943
+ at_academy: at_academy$1,
4944
+ sent_at: sent_at$1
4493
4945
  };
4494
4946
 
4495
4947
  i18n.use(initReactI18next).init({
@@ -4585,6 +5037,7 @@ var TheLanguageDropdown = function TheLanguageDropdown(_ref) {
4585
5037
  };
4586
5038
 
4587
5039
  var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl, homeUrl, canFetchAcademies) {
5040
+ var _user$roles;
4588
5041
  if (role === void 0) {
4589
5042
  role = Role.Student;
4590
5043
  }
@@ -4660,8 +5113,9 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4660
5113
  isLoading && dispatch(setLoading(true));
4661
5114
  var academyId = selectedAcademy ? selectedAcademy.id : 0;
4662
5115
  var academyDomain = selectedAcademy ? selectedAcademy.domain : undefined;
5116
+ var isSuperAdminUser = user && !user.academyDomain;
4663
5117
  var _temp4 = _catch(function () {
4664
- return Promise.resolve(switchAcademy(academyId)).then(function (res) {
5118
+ return Promise.resolve(isSuperAdminUser ? switchSuperAdminAcademy(academyId, role) : switchAcademy(academyId, role)).then(function (res) {
4665
5119
  var data = res.data;
4666
5120
  var requestBody = {
4667
5121
  accessToken: data.accessToken,
@@ -4682,16 +5136,15 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4682
5136
  return Promise.reject(e);
4683
5137
  }
4684
5138
  };
4685
- var handleLogOutAcademy = function handleLogOutAcademy(selectedAcademy, callback) {
5139
+ var handleLogOutAcademy = function handleLogOutAcademy(callback) {
4686
5140
  try {
4687
5141
  var _temp7 = function _temp7() {
4688
5142
  dispatch(setLoading(false));
4689
5143
  callback();
4690
5144
  };
4691
5145
  dispatch(setLoading(true));
4692
- var academyDomain = selectedAcademy ? selectedAcademy.domain : undefined;
4693
5146
  var _temp6 = _catch(function () {
4694
- return Promise.resolve(switchAcademy(0)).then(function (res) {
5147
+ return Promise.resolve(switchAcademy(0, role)).then(function (res) {
4695
5148
  var data = res.data;
4696
5149
  var requestBody = {
4697
5150
  accessToken: data.accessToken,
@@ -4699,12 +5152,11 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4699
5152
  academyId: 0,
4700
5153
  role: role
4701
5154
  };
4702
- academyDomain && localStorage.setItem(ACADEMY_DOMAIN, academyDomain);
4703
- !academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
4704
- return Promise.resolve(handleLoginAccessToken(requestBody, false, user.academyDomain ? academyDomain : undefined)).then(function () {});
5155
+ localStorage.removeItem(ACADEMY_DOMAIN);
5156
+ return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {});
4705
5157
  });
4706
5158
  }, function (error) {
4707
- academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
5159
+ localStorage.removeItem(ACADEMY_DOMAIN);
4708
5160
  toast.error(getErrorMessage(t, error));
4709
5161
  });
4710
5162
  return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6));
@@ -4714,7 +5166,7 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4714
5166
  };
4715
5167
  useEffect(function () {
4716
5168
  canFetchAcademies && getAcademies();
4717
- }, [canFetchAcademies, user === null || user === void 0 ? void 0 : user.academyDomain, user === null || user === void 0 ? void 0 : user.email]);
5169
+ }, [canFetchAcademies, user === null || user === void 0 ? void 0 : user.academyDomain, user === null || user === void 0 ? void 0 : user.email, user === null || user === void 0 ? void 0 : (_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.join(",")]);
4718
5170
  useEffect(function () {
4719
5171
  canFetchAcademies && isReFetchUserAcademies && getAcademies(false);
4720
5172
  }, [canFetchAcademies, isReFetchUserAcademies]);
@@ -4810,7 +5262,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4810
5262
  display: "flex",
4811
5263
  alignItems: "center"
4812
5264
  }
4813
- }, selectedAcademy !== null && selectedAcademy !== void 0 && selectedAcademy.name ? React__default.createElement(Stack, {
5265
+ }, React__default.createElement(Stack, {
4814
5266
  flexDirection: "column",
4815
5267
  gap: "2px"
4816
5268
  }, React__default.createElement(Typography, {
@@ -4831,28 +5283,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4831
5283
  lineHeight: '1.5em',
4832
5284
  color: styles.gray_500
4833
5285
  }
4834
- }, selectedAcademy.name)) : React__default.createElement(Stack, {
4835
- flexDirection: "column",
4836
- gap: "2px"
4837
- }, React__default.createElement(Typography, {
4838
- textAlign: "start",
4839
- className: "" + styles["line-clamp"],
4840
- sx: {
4841
- fontSize: 14,
4842
- fontWeight: 900,
4843
- lineHeight: '1.5em',
4844
- color: styles.gray_900
4845
- }
4846
- }), React__default.createElement(Typography, {
4847
- textAlign: "start",
4848
- className: "" + styles["line-clamp"],
4849
- sx: {
4850
- fontSize: 14,
4851
- fontWeight: 600,
4852
- lineHeight: '1.5em',
4853
- color: styles.gray_500
4854
- }
4855
- }, t("no_academy_selected"))))), React__default.createElement(Grid, {
5286
+ }, selectedAcademy !== null && selectedAcademy !== void 0 && selectedAcademy.name ? selectedAcademy.name : t("no_academy_selected"))))), React__default.createElement(Grid, {
4856
5287
  item: true,
4857
5288
  xs: 6,
4858
5289
  lg: 2,
@@ -4952,7 +5383,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4952
5383
  }
4953
5384
  }, option.name))), option.id === (selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.id) && React__default.createElement("div", {
4954
5385
  onClick: function onClick() {
4955
- return handleLogOutAcademy(selectedAcademy, handleClose);
5386
+ return handleLogOutAcademy(handleClose);
4956
5387
  }
4957
5388
  }, React__default.createElement(IoCloseCircle, {
4958
5389
  size: 18,
@@ -6458,14 +6889,14 @@ var MessageStatus;
6458
6889
  })(MessageStatus || (MessageStatus = {}));
6459
6890
 
6460
6891
  var types = {
6461
- __proto__: null,
6462
- get MessageSortBy () { return MessageSortBy; },
6463
- get OrderBy () { return OrderBy; },
6464
- get StudentSortBy () { return StudentSortBy; },
6465
- get StudentOrderBy () { return StudentOrderBy; },
6466
- get MessageAction () { return MessageAction; },
6467
- get MessageSourceType () { return MessageSourceType; },
6468
- get MessageStatus () { return MessageStatus; }
6892
+ __proto__: null,
6893
+ get MessageSortBy () { return MessageSortBy; },
6894
+ get OrderBy () { return OrderBy; },
6895
+ get StudentSortBy () { return StudentSortBy; },
6896
+ get StudentOrderBy () { return StudentOrderBy; },
6897
+ get MessageAction () { return MessageAction; },
6898
+ get MessageSourceType () { return MessageSourceType; },
6899
+ get MessageStatus () { return MessageStatus; }
6469
6900
  };
6470
6901
 
6471
6902
  var ExamStatus;
@@ -6489,7 +6920,8 @@ var MESSAGE_DEFAULT_FILTER = {
6489
6920
  sortColumnName: MessageSortBy.CreatedAt
6490
6921
  };
6491
6922
 
6492
- var useMessageList = function useMessageList() {
6923
+ var useMessageList = function useMessageList(_ref) {
6924
+ var student = _ref.student;
6493
6925
  var _useState = useState([]),
6494
6926
  messages = _useState[0],
6495
6927
  setMessages = _useState[1];
@@ -6501,13 +6933,19 @@ var useMessageList = function useMessageList() {
6501
6933
  setLoading = _useState3[1];
6502
6934
  var _useTranslation = useTranslation(),
6503
6935
  t = _useTranslation.t;
6936
+ var roles = useSelector(function (state) {
6937
+ var _state$common, _state$common$user;
6938
+ return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.roles) || [];
6939
+ });
6940
+ var isTeacher = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Teacher);
6941
+ var isFirst = true;
6504
6942
  var getMessageList = function getMessageList(conversationId) {
6505
6943
  try {
6506
- var _temp2 = function _temp2() {
6944
+ var _temp3 = function _temp3() {
6507
6945
  setLoading(false);
6508
6946
  };
6509
6947
  setLoading(true);
6510
- var _temp = _catch(function () {
6948
+ var _temp2 = _catch(function () {
6511
6949
  var filter = _extends({}, messageFilter);
6512
6950
  return Promise.resolve(getMessagesByConversation(conversationId, filter)).then(function (res) {
6513
6951
  return Promise.resolve(updateLastTimeReadConversation(conversationId)).then(function () {
@@ -6519,19 +6957,32 @@ var useMessageList = function useMessageList() {
6519
6957
  totalPages: res.data.totalPages
6520
6958
  });
6521
6959
  });
6960
+ var _temp = function () {
6961
+ if (isFirst && isTeacher) {
6962
+ return Promise.resolve(createRecentUserActionListApi({
6963
+ userId: (student === null || student === void 0 ? void 0 : student.id) || 0,
6964
+ action: RecentUserAction$1.ViewedQNA,
6965
+ data: "" + conversationId,
6966
+ roles: [Role.Teacher]
6967
+ })).then(function () {
6968
+ isFirst = false;
6969
+ });
6970
+ }
6971
+ }();
6972
+ if (_temp && _temp.then) return _temp.then(function () {});
6522
6973
  });
6523
6974
  });
6524
6975
  }, function (error) {
6525
6976
  toast.error(getErrorMessage(t, error));
6526
6977
  });
6527
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
6978
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
6528
6979
  } catch (e) {
6529
6980
  return Promise.reject(e);
6530
6981
  }
6531
6982
  };
6532
6983
  var handleLoadMore = function handleLoadMore(conversationId) {
6533
6984
  try {
6534
- var _temp4 = function _temp4(_result) {
6985
+ var _temp5 = function _temp5(_result) {
6535
6986
  if (_exit) return _result;
6536
6987
  setLoading(false);
6537
6988
  return true;
@@ -6542,7 +6993,7 @@ var useMessageList = function useMessageList() {
6542
6993
  currentPage: ((messageFilter === null || messageFilter === void 0 ? void 0 : messageFilter.currentPage) || 1) + 1
6543
6994
  });
6544
6995
  setLoading(true);
6545
- var _temp3 = _catch(function () {
6996
+ var _temp4 = _catch(function () {
6546
6997
  return Promise.resolve(getMessagesByConversation(conversationId, filter)).then(function (res) {
6547
6998
  return Promise.resolve(updateLastTimeReadConversation(conversationId)).then(function () {
6548
6999
  if (res.data.items.length) {
@@ -6566,7 +7017,7 @@ var useMessageList = function useMessageList() {
6566
7017
  toast.error(getErrorMessage(t, error));
6567
7018
  _exit = true;
6568
7019
  });
6569
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
7020
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
6570
7021
  } catch (e) {
6571
7022
  return Promise.reject(e);
6572
7023
  }
@@ -6577,19 +7028,19 @@ var useMessageList = function useMessageList() {
6577
7028
  };
6578
7029
  var handleDeleteMessage = function handleDeleteMessage(conversationId, id, callback) {
6579
7030
  try {
6580
- var _temp6 = function _temp6(_result2) {
7031
+ var _temp7 = function _temp7(_result2) {
6581
7032
  if (_exit2) return _result2;
6582
7033
  callback();
6583
7034
  };
6584
7035
  var _exit2 = false;
6585
7036
  if (isLoading) return Promise.resolve();
6586
- var _temp5 = _catch(function () {
7037
+ var _temp6 = _catch(function () {
6587
7038
  return Promise.resolve(deleteMessage(conversationId, id)).then(function () {});
6588
7039
  }, function (error) {
6589
7040
  toast.error(getErrorMessage(t, error));
6590
7041
  _exit2 = true;
6591
7042
  });
6592
- return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
7043
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6));
6593
7044
  } catch (e) {
6594
7045
  return Promise.reject(e);
6595
7046
  }
@@ -6613,19 +7064,19 @@ var useMessageList = function useMessageList() {
6613
7064
  };
6614
7065
  var handleUpdateMessage = function handleUpdateMessage(conversationId, id, message, callback) {
6615
7066
  try {
6616
- var _temp8 = function _temp8(_result3) {
7067
+ var _temp9 = function _temp9(_result3) {
6617
7068
  if (_exit3) return _result3;
6618
7069
  setLoading(false);
6619
7070
  callback();
6620
7071
  };
6621
7072
  var _exit3 = false;
6622
- var _temp7 = _catch(function () {
7073
+ var _temp8 = _catch(function () {
6623
7074
  return Promise.resolve(updateMessage(conversationId, id, message)).then(function () {});
6624
7075
  }, function (error) {
6625
7076
  toast.error(getErrorMessage(t, error));
6626
7077
  _exit3 = true;
6627
7078
  });
6628
- return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
7079
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp9) : _temp9(_temp8));
6629
7080
  } catch (e) {
6630
7081
  return Promise.reject(e);
6631
7082
  }
@@ -6680,7 +7131,9 @@ var useChatContainer = function useChatContainer(props) {
6680
7131
  var _useState4 = useState(true),
6681
7132
  isScrollToEnd = _useState4[0],
6682
7133
  setScrollToEnd = _useState4[1];
6683
- var _useMessageList = useMessageList(),
7134
+ var _useMessageList = useMessageList({
7135
+ student: student
7136
+ }),
6684
7137
  isLoadingMessages = _useMessageList.isLoading,
6685
7138
  messages = _useMessageList.messages,
6686
7139
  messageFilter = _useMessageList.messageFilter,
@@ -6963,8 +7416,10 @@ var usePusherConversation = function usePusherConversation(onNewMessageConversat
6963
7416
  return {};
6964
7417
  };
6965
7418
 
7419
+ var _templateObject;
7420
+ var BorderedTextField = styled(TextField)(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n & .MuiOutlinedInput-root {\n &.Mui-focused fieldset {\n border-width: 1px;\n border-color: ", ";\n }\n }\n & .MuiOutlinedInput-root:hover {\n fieldset {\n border-width: 1px;\n border-color: ", ";\n }\n }\n"])), styles.dark, styles.less_dark);
6966
7421
  var InputText = function InputText(props) {
6967
- return React__default.createElement(TextField, Object.assign({
7422
+ return React__default.createElement(BorderedTextField, Object.assign({
6968
7423
  sx: {
6969
7424
  "& input": {
6970
7425
  py: "7.5px",
@@ -7756,12 +8211,22 @@ var OrderType;
7756
8211
  OrderType["DESC"] = "DESC";
7757
8212
  })(OrderType || (OrderType = {}));
7758
8213
 
8214
+ var RecentUserAction$1;
8215
+ (function (RecentUserAction) {
8216
+ RecentUserAction["ViewedUser"] = "ViewedUser";
8217
+ RecentUserAction["ViewedQNA"] = "ViewedQNA";
8218
+ RecentUserAction["ViewedExamResult"] = "ViewedExamResult";
8219
+ RecentUserAction["PrintedExamResult"] = "PrintedExamResult";
8220
+ RecentUserAction["ViewedAttendance"] = "ViewedAttendance";
8221
+ })(RecentUserAction$1 || (RecentUserAction$1 = {}));
8222
+
7759
8223
 
7760
8224
 
7761
8225
  var index = {
7762
- __proto__: null,
7763
- get OrderType () { return OrderType; },
7764
- get ExamStatus () { return ExamStatus$1; }
8226
+ __proto__: null,
8227
+ get OrderType () { return OrderType; },
8228
+ get ExamStatus () { return ExamStatus$1; },
8229
+ get RecentUserAction () { return RecentUserAction$1; }
7765
8230
  };
7766
8231
 
7767
8232
  var TextbookSortBy;
@@ -8005,6 +8470,8 @@ var useExam = function useExam(props) {
8005
8470
  };
8006
8471
  };
8007
8472
 
8473
+ var PAGE_TITLE_DETAIL = "textbook_detail";
8474
+ var PAGE_TITLE_CREATE = "create_textbook";
8008
8475
  var useTextbookDetail = function useTextbookDetail(props) {
8009
8476
  var role = props.role,
8010
8477
  isReadonlyParam = props.isReadonlyParam,
@@ -8706,7 +9173,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
8706
9173
  handleChangeExamRequest(exam);
8707
9174
  };
8708
9175
  useEffect(function () {
8709
- document.title = t("textbooks") + " | " + t(id ? "textbook_detail" : "create_textbook");
9176
+ document.title = t("study_peak") + " | " + t(id ? PAGE_TITLE_DETAIL : PAGE_TITLE_CREATE);
8710
9177
  }, [id, t]);
8711
9178
  useEffect(function () {
8712
9179
  setReadonly(textbook.isCreatedByAdmin || !!isReadonlyParam);
@@ -9764,6 +10231,22 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
9764
10231
  }));
9765
10232
  };
9766
10233
 
10234
+ var checkSuperUrl = function checkSuperUrl(superUrls, pathname) {
10235
+ return superUrls.some(function (i) {
10236
+ if (i.includes(":")) {
10237
+ var urls = i.split("/");
10238
+ var names = pathname.split("/");
10239
+ if (urls.length != names.length) return false;
10240
+ var isMatches = true;
10241
+ urls.forEach(function (u, index) {
10242
+ if (u != names[index] && !u.startsWith(":")) isMatches = false;
10243
+ });
10244
+ return isMatches;
10245
+ }
10246
+ return pathname.startsWith(i);
10247
+ });
10248
+ };
10249
+
9767
10250
  var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superUrls, homeUrl, homeAcademyUrl, isAuthPage) {
9768
10251
  if (isAuthPage === void 0) {
9769
10252
  isAuthPage = true;
@@ -9782,9 +10265,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9782
10265
  var paramAcademyDomain = searchParams.get("domain");
9783
10266
  var domain = getAcademyDomain();
9784
10267
  if (!!email !== isAuthPage) return;
9785
- var isSuperUrl = superUrls.some(function (i) {
9786
- return pathname.startsWith(i);
9787
- });
10268
+ var isSuperUrl = checkSuperUrl(superUrls, pathname);
9788
10269
  if (!academyDomain) {
9789
10270
  if (!isSuperUrl) {
9790
10271
  !paramAcademyDomain && domain && searchParams.set("domain", domain);
@@ -9825,7 +10306,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9825
10306
  };
9826
10307
  useEffect(function () {
9827
10308
  changeAcademySearchParams();
9828
- }, [window.location.pathname, window.location.search, isAuthPage, email, academyDomain]);
10309
+ }, [pathname, window.location.search, isAuthPage, email, academyDomain]);
9829
10310
  };
9830
10311
 
9831
10312
  var DEFAULT_PAGING_RESPONSE = {
@@ -9943,12 +10424,13 @@ var useList = function useList(fetchData, defaultQuery) {
9943
10424
 
9944
10425
 
9945
10426
  var index$1 = {
9946
- __proto__: null,
9947
- useLogin: useLogin,
9948
- useAutoAcademyDomain: useAutoAcademyDomain,
9949
- useList: useList
10427
+ __proto__: null,
10428
+ useLogin: useLogin,
10429
+ useAutoAcademyDomain: useAutoAcademyDomain,
10430
+ useList: useList
9950
10431
  };
9951
10432
 
10433
+ var PAGE_TITLE$1 = "textbooks";
9952
10434
  var useTextbookList = function useTextbookList(props) {
9953
10435
  var role = props.role,
9954
10436
  navigate = props.navigate;
@@ -10012,6 +10494,9 @@ var useTextbookList = function useTextbookList(props) {
10012
10494
  return Promise.reject(e);
10013
10495
  }
10014
10496
  };
10497
+ useEffect(function () {
10498
+ document.title = t("study_peak") + " | " + t(PAGE_TITLE$1);
10499
+ }, [t]);
10015
10500
  return {
10016
10501
  filter: filter,
10017
10502
  textSearchRef: textSearchRef,
@@ -10235,9 +10720,9 @@ var TextbookList = function TextbookList(props) {
10235
10720
 
10236
10721
 
10237
10722
  var index$2 = {
10238
- __proto__: null,
10239
- TextbookList: TextbookList,
10240
- TextbookDetail: TextbookViewDetail
10723
+ __proto__: null,
10724
+ TextbookList: TextbookList,
10725
+ TextbookDetail: TextbookViewDetail
10241
10726
  };
10242
10727
 
10243
10728
  var _excluded$5 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
@@ -10347,9 +10832,6 @@ var getResultsCategoriesTeacher = function getResultsCategoriesTeacher(id, stude
10347
10832
  var createConversationApi = function createConversationApi(data) {
10348
10833
  return api.post(BASE_URL + "/api/conversation", data);
10349
10834
  };
10350
- var getCheckStatusExam = function getCheckStatusExam(examCode) {
10351
- return api.get(EXAM_SESSION_URL + "/" + examCode + "/status");
10352
- };
10353
10835
 
10354
10836
  var toNumberOrder = function toNumberOrder(value) {
10355
10837
  return "The " + value + (value % 10 === 1 ? 'st' : value % 10 === 2 ? 'nd' : value % 10 === 3 ? 'rd' : 'th');
@@ -11148,6 +11630,28 @@ var defaultSeries = function defaultSeries(t) {
11148
11630
  }];
11149
11631
  };
11150
11632
 
11633
+ var RECENT_USER_URL = BASE_URL + "/api/recentUsers";
11634
+ var getRecentUserActionListApi = function getRecentUserActionListApi(query) {
11635
+ return api.get("" + RECENT_USER_URL, {
11636
+ params: _extends({}, query)
11637
+ });
11638
+ };
11639
+ var createRecentUserActionListApi = function createRecentUserActionListApi(_ref) {
11640
+ var userId = _ref.userId,
11641
+ action = _ref.action,
11642
+ data = _ref.data,
11643
+ roles = _ref.roles;
11644
+ return api.post("" + RECENT_USER_URL, {
11645
+ userId: userId,
11646
+ action: action,
11647
+ data: data
11648
+ }, {
11649
+ params: {
11650
+ roles: roles
11651
+ }
11652
+ });
11653
+ };
11654
+
11151
11655
  var useExamResult = function useExamResult(searchParam, history, examSessionId, studentId, code, handleChangeTab, selectedTab) {
11152
11656
  var _allSeries$dataChartI;
11153
11657
  if (examSessionId === void 0) {
@@ -11172,97 +11676,94 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11172
11676
  var _state$common2;
11173
11677
  return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
11174
11678
  });
11175
- var _useState = useState(),
11176
- resultData = _useState[0],
11177
- setResultData = _useState[1];
11679
+ var _useState = useState(false),
11680
+ isLoading = _useState[0],
11681
+ setIsLoading = _useState[1];
11178
11682
  var _useState2 = useState(),
11179
- effectSize = _useState2[0],
11180
- setEffectSize = _useState2[1];
11181
- var _useState3 = useState([]),
11182
- longTimeSpend = _useState3[0],
11183
- setLongTimeSpend = _useState3[1];
11683
+ resultData = _useState2[0],
11684
+ setResultData = _useState2[1];
11685
+ var _useState3 = useState(),
11686
+ effectSize = _useState3[0],
11687
+ setEffectSize = _useState3[1];
11184
11688
  var _useState4 = useState([]),
11185
- timelyOrderQuestions = _useState4[0],
11186
- setTimelyOrderQuestions = _useState4[1];
11689
+ longTimeSpend = _useState4[0],
11690
+ setLongTimeSpend = _useState4[1];
11187
11691
  var _useState5 = useState([]),
11188
- categoryResponses = _useState5[0],
11189
- setCategoryResponses = _useState5[1];
11190
- var _useState6 = useState(0),
11191
- dataChartIndex = _useState6[0],
11192
- setDataChartIndex = _useState6[1];
11193
- var _useState7 = useState(""),
11194
- openProblem = _useState7[0],
11195
- setOpenProblem = _useState7[1];
11692
+ timelyOrderQuestions = _useState5[0],
11693
+ setTimelyOrderQuestions = _useState5[1];
11694
+ var _useState6 = useState([]),
11695
+ categoryResponses = _useState6[0],
11696
+ setCategoryResponses = _useState6[1];
11697
+ var _useState7 = useState(0),
11698
+ dataChartIndex = _useState7[0],
11699
+ setDataChartIndex = _useState7[1];
11700
+ var _useState8 = useState(""),
11701
+ openProblem = _useState8[0],
11702
+ setOpenProblem = _useState8[1];
11196
11703
  var _useTranslation = useTranslation(),
11197
11704
  t = _useTranslation.t;
11198
11705
  var getStudentData = function getStudentData(examCode) {
11199
11706
  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);
11707
+ var _temp2 = function _temp2() {
11708
+ setIsLoading(false);
11219
11709
  };
11220
11710
  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
11711
+ setIsLoading(true);
11712
+ var _temp = _catch(function () {
11713
+ return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11714
+ var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
11715
+ handleChangeTab(0);
11716
+ setDataChartIndex(0);
11717
+ setResultData((_result$0$data = result[0].data) === null || _result$0$data === void 0 ? void 0 : _result$0$data.data);
11718
+ setLongTimeSpend((_result$1$data = result[1].data) === null || _result$1$data === void 0 ? void 0 : _result$1$data.data);
11719
+ setEffectSize((_result$2$data = result[2].data) === null || _result$2$data === void 0 ? void 0 : _result$2$data.data);
11720
+ setTimelyOrderQuestions((_result$3$data = result[3].data) === null || _result$3$data === void 0 ? void 0 : _result$3$data.data);
11721
+ setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
11227
11722
  });
11723
+ }, function (error) {
11724
+ toast.error(getErrorMessage(t, error));
11228
11725
  });
11229
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11726
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11230
11727
  } catch (e) {
11231
11728
  return Promise.reject(e);
11232
11729
  }
11233
11730
  };
11234
11731
  var getStudentDataByTeacher = function getStudentDataByTeacher(examCode, examSessionId, studentId) {
11235
11732
  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);
11733
+ var _temp5 = function _temp5() {
11734
+ setIsLoading(false);
11255
11735
  };
11256
11736
  if (!examCode || !examSessionId || !studentId) return Promise.resolve();
11257
- 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
11737
+ setIsLoading(true);
11738
+ var _temp4 = _catch(function () {
11739
+ return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11740
+ var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11741
+ function _temp3(_createRecentUserActi) {
11742
+ _createRecentUserActi;
11743
+ }
11744
+ handleChangeTab(0);
11745
+ setDataChartIndex(0);
11746
+ setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
11747
+ setLongTimeSpend((_result$1$data2 = result[1].data) === null || _result$1$data2 === void 0 ? void 0 : _result$1$data2.data);
11748
+ setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11749
+ setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11750
+ setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
11751
+ return isStudent ? _temp3(!isStudent && createRecentUserActionListApi({
11752
+ userId: studentId,
11753
+ action: RecentUserAction$1.ViewedExamResult,
11754
+ data: "" + examSessionId,
11755
+ roles: [Role.Teacher]
11756
+ })) : Promise.resolve(!isStudent && createRecentUserActionListApi({
11757
+ userId: studentId,
11758
+ action: RecentUserAction$1.ViewedExamResult,
11759
+ data: "" + examSessionId,
11760
+ roles: [Role.Teacher]
11761
+ })).then(_temp3);
11263
11762
  });
11763
+ }, function (error) {
11764
+ toast.error(getErrorMessage(t, error));
11264
11765
  });
11265
- return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
11766
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
11266
11767
  } catch (e) {
11267
11768
  return Promise.reject(e);
11268
11769
  }
@@ -11438,13 +11939,13 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11438
11939
  var series = (_allSeries$dataChartI = allSeries[dataChartIndex]) != null ? _allSeries$dataChartI : defaultSeries(t);
11439
11940
  var handleExportPdf = function handleExportPdf() {
11440
11941
  try {
11441
- var _temp26 = function _temp26(_result) {
11942
+ var _temp24 = function _temp24(_result) {
11442
11943
  if (_exit) return _result;
11443
11944
  dispatch(setLoading(false));
11444
11945
  };
11445
11946
  var _exit = false;
11446
11947
  dispatch(setLoading(true));
11447
- var _temp25 = _catch(function () {
11948
+ var _temp23 = _catch(function () {
11448
11949
  var canvas = document.querySelector("#canvas");
11449
11950
  var headerCanvas = document.querySelector("#header-canvas");
11450
11951
  if (!canvas || !headerCanvas) {
@@ -11466,24 +11967,38 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11466
11967
  var imgWidth = WIDTH_PAPER;
11467
11968
  var chartWidth = WIDTH_PAPER - 20;
11468
11969
  return Promise.resolve(html2canvas(headerCanvas)).then(function (header) {
11469
- function _temp24() {
11970
+ function _temp22() {
11971
+ function _temp20(_createRecentUserActi2) {
11972
+ _createRecentUserActi2;
11973
+ }
11470
11974
  doc.save("download.pdf");
11975
+ return isStudent ? _temp20(!isStudent && createRecentUserActionListApi({
11976
+ userId: studentId,
11977
+ action: RecentUserAction$1.PrintedExamResult,
11978
+ data: "" + examSessionId,
11979
+ roles: [Role.Teacher]
11980
+ })) : Promise.resolve(!isStudent && createRecentUserActionListApi({
11981
+ userId: studentId,
11982
+ action: RecentUserAction$1.PrintedExamResult,
11983
+ data: "" + examSessionId,
11984
+ roles: [Role.Teacher]
11985
+ })).then(_temp20);
11471
11986
  }
11472
11987
  var imgHeaderHeight = header.height * imgWidth / header.width;
11473
11988
  var imgHeaderData = header.toDataURL('image/png');
11474
11989
  doc.addImage(imgHeaderData, 'PNG', 0, 0, imgWidth, imgHeaderHeight);
11475
11990
  line += imgHeaderHeight;
11476
11991
  if (line > HEIGHT_PAPER) breakPage();
11477
- var _temp23 = function () {
11992
+ var _temp21 = function () {
11478
11993
  if (canvas && canvas.childElementCount > 0) {
11479
11994
  var _index = 0;
11480
- var _temp22 = _for(function () {
11995
+ var _temp19 = _for(function () {
11481
11996
  return _index < canvas.childElementCount;
11482
11997
  }, function () {
11483
11998
  return _index++;
11484
11999
  }, function () {
11485
- function _temp21() {
11486
- function _temp19() {
12000
+ function _temp18() {
12001
+ function _temp16() {
11487
12002
  line += 20;
11488
12003
  }
11489
12004
  var printChartTitle = function printChartTitle() {
@@ -11498,11 +12013,11 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11498
12013
  return Promise.reject(e);
11499
12014
  }
11500
12015
  };
11501
- var _temp18 = function () {
12016
+ var _temp15 = function () {
11502
12017
  if (printContainerEls.length) {
11503
- var _temp17 = _forTo(printContainerEls, function (i) {
11504
- function _temp16() {
11505
- function _temp14() {
12018
+ var _temp14 = _forTo(printContainerEls, function (i) {
12019
+ function _temp13() {
12020
+ function _temp11() {
11506
12021
  var printTitle = function printTitle() {
11507
12022
  try {
11508
12023
  if (!printTitleHeight || !printTitleData) return Promise.resolve();
@@ -11531,10 +12046,10 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11531
12046
  var printContents = printContainerEl.querySelectorAll("." + PrintContentClassName);
11532
12047
  if (!printContents.length) return;
11533
12048
  printTitle();
11534
- var _temp12 = _forTo(printContents, function (j) {
12049
+ var _temp9 = _forTo(printContents, function (j) {
11535
12050
  var rowItem = printContents[j];
11536
12051
  return Promise.resolve(html2canvas(rowItem)).then(function (rowItemCanvas) {
11537
- function _temp11() {
12052
+ function _temp8() {
11538
12053
  doc.addImage(data, 'PNG', 10, line, chartWidth, height);
11539
12054
  line += height;
11540
12055
  }
@@ -11542,25 +12057,25 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11542
12057
  var data = rowItemCanvas.toDataURL('image/png');
11543
12058
  if (i === 0 && j === 0 && line + height + (printHeaderHeight || 0) + ((chartTitleHeight || 0) + 10) + 20 > HEIGHT_PAPER) breakPage();
11544
12059
  i === 0 && j === 0 && printChartTitle();
11545
- var _temp10 = function () {
12060
+ var _temp7 = function () {
11546
12061
  if (line + height + 20 > HEIGHT_PAPER) {
11547
12062
  breakPage();
11548
12063
  return Promise.resolve(printHeader()).then(function () {});
11549
12064
  } else {
11550
- var _temp27 = function () {
12065
+ var _temp25 = function () {
11551
12066
  if (j === 0) {
11552
12067
  return Promise.resolve(printHeader(10)).then(function () {});
11553
12068
  }
11554
12069
  }();
11555
- if (_temp27 && _temp27.then) return _temp27.then(function () {});
12070
+ if (_temp25 && _temp25.then) return _temp25.then(function () {});
11556
12071
  }
11557
12072
  }();
11558
- return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
12073
+ return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
11559
12074
  });
11560
12075
  });
11561
- if (_temp12 && _temp12.then) return _temp12.then(function () {});
12076
+ if (_temp9 && _temp9.then) return _temp9.then(function () {});
11562
12077
  }
11563
- var _temp13 = function () {
12078
+ var _temp10 = function () {
11564
12079
  if (printHeaderEl) {
11565
12080
  return Promise.resolve(html2canvas(printHeaderEl)).then(function (_html2canvas3) {
11566
12081
  printHeaderCanvas = _html2canvas3;
@@ -11569,7 +12084,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11569
12084
  });
11570
12085
  }
11571
12086
  }();
11572
- return _temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13);
12087
+ return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
11573
12088
  }
11574
12089
  var printContainerEl = printContainerEls[i];
11575
12090
  var printTitleEl = printContainerEl.querySelector("." + PrintTitleClassName);
@@ -11580,7 +12095,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11580
12095
  var printHeaderCanvas = null;
11581
12096
  var printHeaderHeight = null;
11582
12097
  var printHeaderData = "";
11583
- var _temp15 = function () {
12098
+ var _temp12 = function () {
11584
12099
  if (printTitleEl) {
11585
12100
  return Promise.resolve(html2canvas(printTitleEl)).then(function (_html2canvas2) {
11586
12101
  printTitleCanvas = _html2canvas2;
@@ -11589,9 +12104,9 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11589
12104
  });
11590
12105
  }
11591
12106
  }();
11592
- return _temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15);
12107
+ return _temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12);
11593
12108
  });
11594
- if (_temp17 && _temp17.then) return _temp17.then(function () {});
12109
+ if (_temp14 && _temp14.then) return _temp14.then(function () {});
11595
12110
  } else {
11596
12111
  return Promise.resolve(html2canvas(chart)).then(function (chartCanvas) {
11597
12112
  var imgBodyHeight = chartCanvas.height * chartWidth / chartCanvas.width;
@@ -11604,7 +12119,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11604
12119
  });
11605
12120
  }
11606
12121
  }();
11607
- return _temp18 && _temp18.then ? _temp18.then(_temp19) : _temp19(_temp18);
12122
+ return _temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15);
11608
12123
  }
11609
12124
  var chart = canvas.children.item(_index);
11610
12125
  if (chart.getAttribute("id") === "header-canvas") return;
@@ -11613,7 +12128,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11613
12128
  var printChartTitleCanvas = null;
11614
12129
  var chartTitleHeight = null;
11615
12130
  var chartTitleData = "";
11616
- var _temp20 = function () {
12131
+ var _temp17 = function () {
11617
12132
  if (chartTitle && printContainerEls.length) {
11618
12133
  return Promise.resolve(html2canvas(chartTitle)).then(function (_html2canvas) {
11619
12134
  printChartTitleCanvas = _html2canvas;
@@ -11622,12 +12137,12 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11622
12137
  });
11623
12138
  }
11624
12139
  }();
11625
- return _temp20 && _temp20.then ? _temp20.then(_temp21) : _temp21(_temp20);
12140
+ return _temp17 && _temp17.then ? _temp17.then(_temp18) : _temp18(_temp17);
11626
12141
  });
11627
- if (_temp22 && _temp22.then) return _temp22.then(function () {});
12142
+ if (_temp19 && _temp19.then) return _temp19.then(function () {});
11628
12143
  }
11629
12144
  }();
11630
- return _temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23);
12145
+ return _temp21 && _temp21.then ? _temp21.then(_temp22) : _temp22(_temp21);
11631
12146
  });
11632
12147
  }, function (error) {
11633
12148
  console.log({
@@ -11635,7 +12150,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11635
12150
  });
11636
12151
  toast.error(getErrorMessage(t, error));
11637
12152
  });
11638
- return Promise.resolve(_temp25 && _temp25.then ? _temp25.then(_temp26) : _temp26(_temp25));
12153
+ return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23));
11639
12154
  } catch (e) {
11640
12155
  return Promise.reject(e);
11641
12156
  }
@@ -11647,6 +12162,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11647
12162
  return utcToLocalTime(resultData === null || resultData === void 0 ? void 0 : resultData.startTime, "HH:mm") + " ~ " + utcToLocalTime(resultData === null || resultData === void 0 ? void 0 : resultData.finishTime, "HH:mm");
11648
12163
  }, [resultData === null || resultData === void 0 ? void 0 : resultData.startTime, resultData === null || resultData === void 0 ? void 0 : resultData.finishTime]);
11649
12164
  return {
12165
+ isLoading: isLoading,
11650
12166
  examTime: examTime,
11651
12167
  series: series,
11652
12168
  chartOptions: chartOptions,
@@ -13286,6 +13802,7 @@ function MyAnswer(_ref) {
13286
13802
  justifyContent: "flex-end"
13287
13803
  }
13288
13804
  }, React__default.createElement("span", {
13805
+ className: "pointer",
13289
13806
  onClick: function onClick(e) {
13290
13807
  return handleOpenChat(e, question === null || question === void 0 ? void 0 : question.id);
13291
13808
  }
@@ -14397,6 +14914,7 @@ var ExamResultV2 = function ExamResultV2(_ref) {
14397
14914
  selected = _useTab.selected,
14398
14915
  handleChangeTab = _useTab.handleChangeTab;
14399
14916
  var _useExamResult = useExamResult(searchParams, history, examSessionId, studentId, code, handleChangeTab, selected),
14917
+ isLoading = _useExamResult.isLoading,
14400
14918
  examTime = _useExamResult.examTime,
14401
14919
  series = _useExamResult.series,
14402
14920
  allSeries = _useExamResult.allSeries,
@@ -14421,7 +14939,9 @@ var ExamResultV2 = function ExamResultV2(_ref) {
14421
14939
  openCreateQuestionDialog = _useCreateQuestionDia.openCreateQuestionDialog,
14422
14940
  toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion;
14423
14941
  var isTabletUp = useMediaQuery('(min-width:900px)');
14424
- return React__default.createElement(Fragment$1, null, timelyOrderQuestions[dataChartIndex] && longTimeSpend && resultData && effectSize ? React__default.createElement("div", {
14942
+ return React__default.createElement(Fragment$1, null, React__default.createElement(LoadingComponent, {
14943
+ isLoading: isLoading
14944
+ }), timelyOrderQuestions[dataChartIndex] && longTimeSpend && resultData && effectSize ? React__default.createElement("div", {
14425
14945
  style: {
14426
14946
  width: "100%"
14427
14947
  }
@@ -14855,10 +15375,22 @@ var ExamResultV2 = function ExamResultV2(_ref) {
14855
15375
  })) : React__default.createElement(Fragment$1, null));
14856
15376
  };
14857
15377
 
15378
+ var RecentUserActionSortBy;
15379
+ (function (RecentUserActionSortBy) {
15380
+ RecentUserActionSortBy["CreatedAt"] = "CreatedAt";
15381
+ })(RecentUserActionSortBy || (RecentUserActionSortBy = {}));
15382
+ var OrderBy$1;
15383
+ (function (OrderBy) {
15384
+ OrderBy["ASC"] = "ASC";
15385
+ OrderBy["DESC"] = "DESC";
15386
+ })(OrderBy$1 || (OrderBy$1 = {}));
15387
+
14858
15388
 
14859
15389
 
14860
15390
  var index$3 = {
14861
- __proto__: null
15391
+ __proto__: null,
15392
+ get OrderBy () { return OrderBy$1; },
15393
+ get RecentUserActionSortBy () { return RecentUserActionSortBy; }
14862
15394
  };
14863
15395
 
14864
15396
  var getLocalDayOfWeek = function getLocalDayOfWeek(utcDateTime, dayOfWeek) {
@@ -14894,12 +15426,12 @@ var getRemainTime = function getRemainTime(startTime, duration) {
14894
15426
  };
14895
15427
 
14896
15428
  var times = {
14897
- __proto__: null,
14898
- getLocalDayOfWeek: getLocalDayOfWeek,
14899
- getUtcDayOfWeek: getUtcDayOfWeek,
14900
- timeSpanToLocalMoment: timeSpanToLocalMoment,
14901
- convertHHMMSStoSeconds: convertHHMMSStoSeconds,
14902
- getRemainTime: getRemainTime
15429
+ __proto__: null,
15430
+ getLocalDayOfWeek: getLocalDayOfWeek,
15431
+ getUtcDayOfWeek: getUtcDayOfWeek,
15432
+ timeSpanToLocalMoment: timeSpanToLocalMoment,
15433
+ convertHHMMSStoSeconds: convertHHMMSStoSeconds,
15434
+ getRemainTime: getRemainTime
14903
15435
  };
14904
15436
 
14905
15437
  var SIGN_IN_SUPER_ADMIN_URL = SUPER_ADMIN_BASE_URL + "/api/auth/login";
@@ -14925,6 +15457,7 @@ var signInSuperAdminApi = function signInSuperAdminApi(_ref2) {
14925
15457
  });
14926
15458
  };
14927
15459
 
15460
+ var PAGE_TITLE$2 = "sign_in";
14928
15461
  var useLogin$2 = function useLogin(_ref) {
14929
15462
  var history = _ref.history,
14930
15463
  _ref$role = _ref.role,
@@ -15015,8 +15548,13 @@ var useLogin$2 = function useLogin(_ref) {
15015
15548
  };
15016
15549
  useEffect(function () {
15017
15550
  var token = getAccessToken();
15018
- if (token) window.location.href = "/";
15019
- }, []);
15551
+ var academyDomain = getAcademyDomain();
15552
+ if (token && academyDomain) window.location.href = homeAcademyUrl;
15553
+ if (token && !academyDomain) window.location.href = homeUrl;
15554
+ }, [homeAcademyUrl, homeUrl]);
15555
+ useEffect(function () {
15556
+ document.title = t("study_peak") + " | " + t(PAGE_TITLE$2);
15557
+ }, [t]);
15020
15558
  return {
15021
15559
  handleSubmit: handleSubmit,
15022
15560
  handleClearAcademyDomain: handleClearAcademyDomain,
@@ -15517,15 +16055,14 @@ var Header = function Header(_ref) {
15517
16055
  var path = _ref2.path,
15518
16056
  icon = _ref2.icon,
15519
16057
  label = _ref2.label,
15520
- isMain = _ref2.isMain,
15521
16058
  activePaths = _ref2.activePaths;
15522
16059
  return React__default.createElement(Link, {
15523
16060
  key: path,
15524
16061
  "aria-current": "page",
15525
- to: !academyDomain && !isMain ? "#" : path,
16062
+ to: !academyDomain ? "#" : path,
15526
16063
  className: "text-decoration-none " + ((activePaths !== null && activePaths !== void 0 && activePaths.length ? activePaths.some(function (a) {
15527
- return pathname.startsWith(a);
15528
- }) : pathname.startsWith(path)) ? "" + styles["router-link-active"] : "") + " " + styles["tabText"] + " " + (!academyDomain && !isMain ? styles["disabled-link"] : "")
16064
+ return pathname === a;
16065
+ }) : pathname === path) ? "" + styles["router-link-active"] : "") + " " + styles["tabText"] + " " + (!academyDomain ? styles["disabled-link"] : "")
15529
16066
  }, React__default.createElement(Stack, {
15530
16067
  sx: {
15531
16068
  justifyContent: "center",
@@ -15554,7 +16091,7 @@ var Header = function Header(_ref) {
15554
16091
  alignItems: "center"
15555
16092
  }, React__default.createElement(Link, {
15556
16093
  "aria-current": "page",
15557
- to: homeRoute.path,
16094
+ to: academyDomain ? homeRoute.path : academyListRoute.path,
15558
16095
  className: "border-none"
15559
16096
  }, React__default.createElement(Stack, {
15560
16097
  justifyContent: "center",
@@ -15572,53 +16109,28 @@ var Header = function Header(_ref) {
15572
16109
  }))));
15573
16110
  };
15574
16111
 
15575
- var ACADEMY_URL$1 = BASE_URL + "/api/academy";
15576
- var getAcademyList$1 = function getAcademyList() {
15577
- return api.get("" + ACADEMY_URL$1);
15578
- };
15579
- var switchAcademy$1 = function switchAcademy(academyId) {
15580
- return api.post(ACADEMY_URL$1 + "/switch-academy?academyId=" + academyId);
15581
- };
15582
-
15583
16112
  var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, homeUrl, registerUrl) {
15584
16113
  var dispatch = useDispatch();
15585
16114
  var _useLogin = useLogin(history, homeAcademyUrl, homeUrl, registerUrl),
15586
16115
  handleLoginAccessToken = _useLogin.handleLoginAccessToken;
15587
- var _useState = useState([]),
15588
- academyList = _useState[0],
15589
- setAcademyList = _useState[1];
16116
+ var academyList = useSelector(function (state) {
16117
+ var _state$academies;
16118
+ return (state === null || state === void 0 ? void 0 : (_state$academies = state.academies) === null || _state$academies === void 0 ? void 0 : _state$academies.items) || [];
16119
+ });
15590
16120
  var email = useSelector(function (state) {
15591
16121
  var _state$common, _state$common$user;
15592
16122
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.email;
15593
16123
  });
15594
16124
  var _useTranslation = useTranslation(),
15595
16125
  t = _useTranslation.t;
15596
- var getAcademies = function getAcademies() {
16126
+ var handleSwitchAcademy = function handleSwitchAcademy(id, domain) {
15597
16127
  try {
15598
16128
  var _temp2 = function _temp2() {
15599
16129
  dispatch(setLoading(false));
15600
16130
  };
15601
16131
  dispatch(setLoading(true));
15602
16132
  var _temp = _catch(function () {
15603
- return Promise.resolve(getAcademyList$1()).then(function (res) {
15604
- setAcademyList(res.data.items || []);
15605
- });
15606
- }, function (error) {
15607
- toast.error(getErrorMessage(t, error));
15608
- });
15609
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
15610
- } catch (e) {
15611
- return Promise.reject(e);
15612
- }
15613
- };
15614
- var handleSwitchAcademy = function handleSwitchAcademy(id, domain) {
15615
- try {
15616
- var _temp4 = function _temp4() {
15617
- dispatch(setLoading(false));
15618
- };
15619
- dispatch(setLoading(true));
15620
- var _temp3 = _catch(function () {
15621
- return Promise.resolve(switchAcademy$1(id)).then(function (res) {
16133
+ return Promise.resolve(switchSuperAdminAcademy(id, role)).then(function (res) {
15622
16134
  var data = res.data;
15623
16135
  var requestBody = {
15624
16136
  accessToken: data.accessToken,
@@ -15632,14 +16144,11 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
15632
16144
  }, function (error) {
15633
16145
  toast.error(getErrorMessage(t, error));
15634
16146
  });
15635
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
16147
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
15636
16148
  } catch (e) {
15637
16149
  return Promise.reject(e);
15638
16150
  }
15639
16151
  };
15640
- useEffect(function () {
15641
- getAcademies();
15642
- }, []);
15643
16152
  return {
15644
16153
  academyList: academyList,
15645
16154
  handleSwitchAcademy: handleSwitchAcademy
@@ -15679,6 +16188,220 @@ var AcademyCard = function AcademyCard(_ref) {
15679
16188
  }, t("switch"))));
15680
16189
  };
15681
16190
 
16191
+ var PassCodeDialog = function PassCodeDialog(_ref) {
16192
+ var open = _ref.open,
16193
+ onClose = _ref.onClose,
16194
+ onSubmit = _ref.onSubmit,
16195
+ academyDomain = _ref.academyDomain;
16196
+ var _useTranslation = useTranslation(),
16197
+ t = _useTranslation.t;
16198
+ var _useState = useState(""),
16199
+ passCode = _useState[0],
16200
+ setPassCode = _useState[1];
16201
+ var handleClose = function handleClose(event, reason) {
16202
+ onClose(event, reason);
16203
+ };
16204
+ var handleSubmit = function handleSubmit() {
16205
+ try {
16206
+ var data = {
16207
+ code: passCode,
16208
+ academyDomain: academyDomain
16209
+ };
16210
+ return Promise.resolve(onSubmit(data, handleClose)).then(function () {});
16211
+ } catch (e) {
16212
+ return Promise.reject(e);
16213
+ }
16214
+ };
16215
+ var handleChangePassCode = function handleChangePassCode(e) {
16216
+ setPassCode(e.target.value);
16217
+ };
16218
+ var theme = useTheme();
16219
+ return React__default.createElement(CommonDialog, {
16220
+ open: open,
16221
+ onClose: handleClose,
16222
+ size: "xs",
16223
+ title: t("join_an_academy")
16224
+ }, React__default.createElement(DialogContent, {
16225
+ sx: {
16226
+ overflowY: "unset"
16227
+ }
16228
+ }, React__default.createElement(Stack, {
16229
+ direction: "column",
16230
+ spacing: 2,
16231
+ zIndex: 1,
16232
+ position: "relative"
16233
+ }, React__default.createElement(FormGroup, null, React__default.createElement(FormLabel, {
16234
+ className: "fw-medium mb-1"
16235
+ }, t("pass_code"), React__default.createElement("span", {
16236
+ className: "text-danger"
16237
+ }, "*")), React__default.createElement(InputText, {
16238
+ id: "pass-code",
16239
+ placeholder: t("enter_pass_code"),
16240
+ value: passCode,
16241
+ onChange: handleChangePassCode
16242
+ })))), React__default.createElement(DialogActions, {
16243
+ className: ""
16244
+ }, React__default.createElement(Button, {
16245
+ variant: "contained",
16246
+ sx: {
16247
+ bgcolor: theme.palette.grey[700]
16248
+ },
16249
+ onClick: handleClose
16250
+ }, t("cancel")), React__default.createElement(Button, {
16251
+ variant: "contained",
16252
+ onClick: handleSubmit,
16253
+ disabled: !passCode.trim().length
16254
+ }, t("submit"))));
16255
+ };
16256
+
16257
+ var PASS_CODE_URL = SUPER_ADMIN_BASE_URL + "/api/passCodes";
16258
+ var checkPassCodeApi = function checkPassCodeApi(code, academyDomain) {
16259
+ return api.post(PASS_CODE_URL + "/check", {
16260
+ code: code,
16261
+ academyDomain: academyDomain
16262
+ });
16263
+ };
16264
+
16265
+ var usePassCodeCheck = function usePassCodeCheck(props) {
16266
+ var history = props.history,
16267
+ role = props.role,
16268
+ homeAcademyUrl = props.homeAcademyUrl,
16269
+ homeUrl = props.homeUrl,
16270
+ registerUrl = props.registerUrl,
16271
+ domain = props.domain;
16272
+ var _useTranslation = useTranslation(),
16273
+ t = _useTranslation.t;
16274
+ var dispatch = useDispatch();
16275
+ var email = useSelector(function (state) {
16276
+ var _state$common, _state$common$user;
16277
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.email;
16278
+ });
16279
+ var academyDomain = useSelector(function (state) {
16280
+ var _state$common2, _state$common2$user;
16281
+ return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : (_state$common2$user = _state$common2.user) === null || _state$common2$user === void 0 ? void 0 : _state$common2$user.academyDomain;
16282
+ });
16283
+ var _useState = useState(),
16284
+ academy = _useState[0],
16285
+ setAcademy = _useState[1];
16286
+ var _useState2 = useState(),
16287
+ isLoadingAcademy = _useState2[0],
16288
+ setLoadingAcademy = _useState2[1];
16289
+ var _useLogin = useLogin(history, homeAcademyUrl, homeUrl, registerUrl),
16290
+ handleLoginAccessToken = _useLogin.handleLoginAccessToken;
16291
+ var handleCheckPassCode = function handleCheckPassCode(form, callback) {
16292
+ try {
16293
+ var _temp2 = function _temp2(_result) {
16294
+ if (_exit) return _result;
16295
+ dispatch(setLoading(false));
16296
+ };
16297
+ var _exit = false;
16298
+ dispatch(setLoading(true));
16299
+ var _temp = _catch(function () {
16300
+ if (role !== Role.Student) {
16301
+ _exit = true;
16302
+ return;
16303
+ }
16304
+ return Promise.resolve(checkPassCodeApi(form.code, form.academyDomain)).then(function (res) {
16305
+ var data = res.data;
16306
+ var requestBody = {
16307
+ accessToken: data.accessToken,
16308
+ email: email,
16309
+ academyId: data.academyId,
16310
+ role: Role.Student
16311
+ };
16312
+ return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {
16313
+ localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
16314
+ callback === null || callback === void 0 ? void 0 : callback();
16315
+ });
16316
+ });
16317
+ }, function (error) {
16318
+ toast.error(getErrorMessage(t, error));
16319
+ });
16320
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
16321
+ } catch (e) {
16322
+ return Promise.reject(e);
16323
+ }
16324
+ };
16325
+ var getAcademyByDomain = function getAcademyByDomain() {
16326
+ try {
16327
+ var _temp6 = function _temp6(_result2) {
16328
+ if (_exit2) return _result2;
16329
+ setLoadingAcademy(false);
16330
+ };
16331
+ var _exit2 = false;
16332
+ if (!domain) return Promise.resolve();
16333
+ setLoadingAcademy(true);
16334
+ var _temp5 = _catch(function () {
16335
+ return Promise.resolve(getAcademyByDomainApi(domain, Role.Student)).then(function (res) {
16336
+ var _res$data;
16337
+ var _exit3 = false;
16338
+ function _temp4(_result3) {
16339
+ if (_exit3) return _result3;
16340
+ setAcademy(academy);
16341
+ }
16342
+ var academy = (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.data;
16343
+ var _temp3 = function () {
16344
+ if (academy.isOwned) {
16345
+ return Promise.resolve(switchSuperAdminAcademy(academy.id, Role.Student)).then(function (switchAcademyRes) {
16346
+ var switchAcademyData = switchAcademyRes.data;
16347
+ var requestBody = {
16348
+ accessToken: switchAcademyData.accessToken,
16349
+ email: email,
16350
+ academyId: academy.id,
16351
+ role: Role.Student
16352
+ };
16353
+ localStorage.setItem(ACADEMY_DOMAIN, domain);
16354
+ return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {
16355
+ _exit2 = true;
16356
+ });
16357
+ });
16358
+ }
16359
+ }();
16360
+ return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
16361
+ });
16362
+ }, function (error) {
16363
+ console.log("error", error);
16364
+ });
16365
+ return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
16366
+ } catch (e) {
16367
+ return Promise.reject(e);
16368
+ }
16369
+ };
16370
+ useEffect(function () {
16371
+ email && !academyDomain && getAcademyByDomain();
16372
+ }, [domain, academyDomain, email]);
16373
+ return {
16374
+ academy: academy,
16375
+ isLoadingAcademy: isLoadingAcademy,
16376
+ academyDomain: academyDomain,
16377
+ email: email,
16378
+ handleCheckPassCode: handleCheckPassCode
16379
+ };
16380
+ };
16381
+
16382
+ var PassCodeCheck = function PassCodeCheck(props) {
16383
+ var role = props.role,
16384
+ open = props.open,
16385
+ domain = props.domain,
16386
+ onClose = props.onClose;
16387
+ var _usePassCodeCheck = usePassCodeCheck(props),
16388
+ academy = _usePassCodeCheck.academy,
16389
+ isLoadingAcademy = _usePassCodeCheck.isLoadingAcademy,
16390
+ academyDomain = _usePassCodeCheck.academyDomain,
16391
+ email = _usePassCodeCheck.email,
16392
+ handleCheckPassCode = _usePassCodeCheck.handleCheckPassCode;
16393
+ if (role !== Role.Student || domain && isLoadingAcademy === false && !academy) return React__default.createElement(NotFound, null);
16394
+ return React__default.createElement(Fragment$1, null, React__default.createElement(LoadingComponent, {
16395
+ isLoading: !!isLoadingAcademy
16396
+ }), !!email && !academyDomain && (!domain || !!academy) && React__default.createElement(PassCodeDialog, {
16397
+ open: open,
16398
+ academyDomain: domain,
16399
+ onClose: onClose,
16400
+ onSubmit: handleCheckPassCode
16401
+ }));
16402
+ };
16403
+
16404
+ var PAGE_TITLE$3 = "academy_list";
15682
16405
  var AcademyList = function AcademyList(_ref) {
15683
16406
  var theme = _ref.theme,
15684
16407
  history = _ref.history,
@@ -15688,10 +16411,19 @@ var AcademyList = function AcademyList(_ref) {
15688
16411
  registerUrl = _ref.registerUrl;
15689
16412
  var _useTranslation = useTranslation(),
15690
16413
  t = _useTranslation.t;
16414
+ var _useState = useState(false),
16415
+ isOpenPassCode = _useState[0],
16416
+ setOpenPassCode = _useState[1];
16417
+ var handleTogglePassCodeDialog = function handleTogglePassCodeDialog() {
16418
+ setOpenPassCode(!isOpenPassCode);
16419
+ };
15691
16420
  useAutoAcademyDomain(function () {}, history, [], "", window.location.pathname, true);
15692
16421
  var _useAcademyList = useAcademyList(history, role, homeAcademyUrl, homeUrl, registerUrl),
15693
16422
  academyList = _useAcademyList.academyList,
15694
16423
  handleSwitchAcademy = _useAcademyList.handleSwitchAcademy;
16424
+ useEffect(function () {
16425
+ document.title = t("study_peak") + " | " + t(PAGE_TITLE$3);
16426
+ }, [t]);
15695
16427
  return React__default.createElement("div", {
15696
16428
  className: "py-3 px-4"
15697
16429
  }, React__default.createElement(Grid$1, {
@@ -15700,10 +16432,18 @@ var AcademyList = function AcademyList(_ref) {
15700
16432
  }, React__default.createElement(Grid$1, {
15701
16433
  item: true,
15702
16434
  xs: 12
16435
+ }, React__default.createElement(Stack, {
16436
+ direction: "row",
16437
+ justifyContent: "space-between",
16438
+ alignItems: "center",
16439
+ spacing: 3
15703
16440
  }, React__default.createElement(Typography$1, {
15704
16441
  fontSize: 24,
15705
16442
  fontWeight: 600
15706
- }, t("academy_list"))), React__default.createElement(Grid$1, {
16443
+ }, t("academy_list")), role === Role.Student && React__default.createElement(Button, {
16444
+ variant: "contained",
16445
+ onClick: handleTogglePassCodeDialog
16446
+ }, t("enter_academy_pass_code")))), React__default.createElement(Grid$1, {
15707
16447
  item: true,
15708
16448
  xs: 12
15709
16449
  }, React__default.createElement(Grid$1, {
@@ -15723,7 +16463,20 @@ var AcademyList = function AcademyList(_ref) {
15723
16463
  }), !academyList.length && React__default.createElement(Grid$1, {
15724
16464
  item: true,
15725
16465
  xs: 3
15726
- }, React__default.createElement("span", null, t("no_academy_available"), "."))))));
16466
+ }, React__default.createElement("span", null, t("no_academy_available"), "."))))), React__default.createElement(PassCodeCheck, {
16467
+ role: role,
16468
+ open: isOpenPassCode,
16469
+ onClose: handleTogglePassCodeDialog,
16470
+ homeAcademyUrl: homeAcademyUrl,
16471
+ homeUrl: homeUrl,
16472
+ registerUrl: registerUrl,
16473
+ history: history
16474
+ }));
16475
+ };
16476
+
16477
+ var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
16478
+ var getCheckStatusExam = function getCheckStatusExam(examCode) {
16479
+ return api.get(EXAM_SESSION_URL$1 + "/" + examCode + "/status");
15727
16480
  };
15728
16481
 
15729
16482
  var ONE_SECOND_IN_MILLISECONDS = 1000;
@@ -15734,6 +16487,7 @@ var useCountDownTimer = function useCountDownTimer(props) {
15734
16487
  duration = props.duration,
15735
16488
  fetchedCount = props.fetchedCount,
15736
16489
  onFinish = props.onFinish;
16490
+ var dispatch = useDispatch();
15737
16491
  var _useState = useState(),
15738
16492
  remainTime = _useState[0],
15739
16493
  setRemainTime = _useState[1];
@@ -15746,9 +16500,11 @@ var useCountDownTimer = function useCountDownTimer(props) {
15746
16500
  return Promise.resolve();
15747
16501
  }
15748
16502
  var _temp = _catch(function () {
16503
+ dispatch(setLoading(true));
15749
16504
  return Promise.resolve(getCheckStatusExam(code)).then(function (res) {
15750
16505
  if (res.data.data.status === ExamStatus$1.Completed) {
15751
- clearInterval(checkStatusRef.current);
16506
+ clearTimeout(checkStatusRef.current);
16507
+ dispatch(setLoading(false));
15752
16508
  onFinish();
15753
16509
  } else {
15754
16510
  checkStatusRef.current = setTimeout(checkLiveExamStatus, ONE_SECOND_IN_MILLISECONDS);
@@ -15769,7 +16525,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15769
16525
  var animate = function animate() {
15770
16526
  if (!startTime || !duration) return;
15771
16527
  if (typeof remainTime === "number" && remainTime <= 0) {
15772
- onFinish();
15773
16528
  return;
15774
16529
  }
15775
16530
  var remain = getRemainTime(startTime, duration);
@@ -15779,7 +16534,6 @@ var useCountDownTimer = function useCountDownTimer(props) {
15779
16534
  }
15780
16535
  if (remain <= 0) {
15781
16536
  setRemainTime(0);
15782
- checkLiveExamStatus();
15783
16537
  return;
15784
16538
  }
15785
16539
  setRemainTime(remain || 0);
@@ -15788,61 +16542,15 @@ var useCountDownTimer = function useCountDownTimer(props) {
15788
16542
  requestRef.current = requestAnimationFrame(animate);
15789
16543
  return function () {
15790
16544
  !!requestRef.current && cancelAnimationFrame(requestRef.current);
15791
- !!checkStatusRef.current && clearTimeout(checkStatusRef.current);
15792
16545
  setRemainTime(undefined);
15793
16546
  };
15794
- }, [startTime, duration, fetchedCount, checkLiveExamStatus]);
16547
+ }, [startTime, duration, fetchedCount]);
15795
16548
  useEffect(function () {
15796
- if (typeof remainTime === "number" && remainTime <= 0) onFinish();
15797
- }, [remainTime, onFinish]);
16549
+ if (typeof remainTime === "number" && remainTime <= 0) checkLiveExamStatus();
16550
+ }, [remainTime, checkLiveExamStatus]);
15798
16551
  return remainTime;
15799
16552
  };
15800
16553
 
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
16554
  var useLoadMore = function useLoadMore(props) {
15847
16555
  var onLoadMore = props.onLoadMore,
15848
16556
  loading = props.loading;
@@ -15941,5 +16649,5 @@ var useVirtualizeList = function useVirtualizeList(totalItems, rowHeight, offset
15941
16649
  };
15942
16650
  };
15943
16651
 
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 };
16652
+ 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, LoadingComponent, Login, SignIn as LoginWithPassword, NotFound, PUSHER_CONFIG, PassCodeCheck, QuestionCountSelector, RecentUserAction, 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, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, 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
16653
  //# sourceMappingURL=index.modern.js.map