touchstudy-core 0.1.69 → 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 (32) 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/hooks/useExamResult.d.ts +1 -0
  11. package/dist/containers/Login/hooks/useLogin.d.ts +1 -1
  12. package/dist/containers/PassCodes/configs/types.d.ts +6 -0
  13. package/dist/containers/PassCodes/hooks/usePassCodeCheck.d.ts +19 -0
  14. package/dist/containers/PassCodes/views/PassCodeCheck.d.ts +13 -0
  15. package/dist/index.d.ts +6 -2
  16. package/dist/index.js +953 -220
  17. package/dist/index.js.map +1 -1
  18. package/dist/index.modern.js +932 -205
  19. package/dist/index.modern.js.map +1 -1
  20. package/dist/services/academyService.d.ts +4 -1
  21. package/dist/services/accountService.d.ts +1 -0
  22. package/dist/services/passCodeService.d.ts +1 -0
  23. package/dist/services/recentUserActionService.d.ts +10 -0
  24. package/dist/utils/constants.d.ts +21 -0
  25. package/dist/utils/enums/index.d.ts +2 -1
  26. package/dist/utils/enums/recentUserAction.d.ts +7 -0
  27. package/dist/utils/hooks/useLayoutContext.d.ts +3 -1
  28. package/dist/utils/hooks/useSwitchAcademy.d.ts +1 -1
  29. package/dist/utils/types/checkSuperUrl.d.ts +1 -0
  30. package/dist/utils/types/index.d.ts +2 -1
  31. package/dist/utils/types/recentUserAction.d.ts +33 -0
  32. 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) {
@@ -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 = "사용자 가져오기 실패";
@@ -2531,6 +2637,82 @@ var messages = {
2531
2637
  var submit = "제출하다";
2532
2638
  var must_select_a_teacher_first = "먼저 교사를 선택해야 합니다";
2533
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 = "데이터를 성공적으로 생성했습니다";
2534
2716
  var lang_ko = {
2535
2717
  problem_solving: problem_solving,
2536
2718
  my_story: my_story,
@@ -3195,7 +3377,83 @@ var lang_ko = {
3195
3377
  messages: messages,
3196
3378
  submit: submit,
3197
3379
  must_select_a_teacher_first: must_select_a_teacher_first,
3198
- student_grade_is_invalid: student_grade_is_invalid
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
3199
3457
  };
3200
3458
 
3201
3459
  var problem_solving$1 = "Problem Solving";
@@ -3847,7 +4105,7 @@ var choose$1 = "Choose";
3847
4105
  var additional_duration$1 = "Additional duration";
3848
4106
  var enter_textbook_name_to_search$1 = "Enter textbook name to search";
3849
4107
  var select_class_placeholder$1 = "Select class...";
3850
- var user_name$1 = "Username";
4108
+ var user_name$1 = "User Name";
3851
4109
  var vulnerable_detail$1 = "Other students had a high percentage of correct answers, but I could not answer these questions correctly.";
3852
4110
  var protracted_problem_detail$1 = "Compare the solution time among the correct answers.";
3853
4111
  var number_of_correct_answers$1 = "Number of correct answers";
@@ -3869,6 +4127,81 @@ var messages$1 = {
3869
4127
  var submit$1 = "Submit";
3870
4128
  var must_select_a_teacher_first$1 = "Must select a teacher first";
3871
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";
3872
4205
  var lang_en = {
3873
4206
  problem_solving: problem_solving$1,
3874
4207
  my_story: my_story$1,
@@ -4533,7 +4866,82 @@ var lang_en = {
4533
4866
  messages: messages$1,
4534
4867
  submit: submit$1,
4535
4868
  must_select_a_teacher_first: must_select_a_teacher_first$1,
4536
- student_grade_is_invalid: student_grade_is_invalid$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
4537
4945
  };
4538
4946
 
4539
4947
  i18n.use(initReactI18next).init({
@@ -4629,6 +5037,7 @@ var TheLanguageDropdown = function TheLanguageDropdown(_ref) {
4629
5037
  };
4630
5038
 
4631
5039
  var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl, homeUrl, canFetchAcademies) {
5040
+ var _user$roles;
4632
5041
  if (role === void 0) {
4633
5042
  role = Role.Student;
4634
5043
  }
@@ -4704,8 +5113,9 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4704
5113
  isLoading && dispatch(setLoading(true));
4705
5114
  var academyId = selectedAcademy ? selectedAcademy.id : 0;
4706
5115
  var academyDomain = selectedAcademy ? selectedAcademy.domain : undefined;
5116
+ var isSuperAdminUser = user && !user.academyDomain;
4707
5117
  var _temp4 = _catch(function () {
4708
- return Promise.resolve(switchAcademy(academyId)).then(function (res) {
5118
+ return Promise.resolve(isSuperAdminUser ? switchSuperAdminAcademy(academyId, role) : switchAcademy(academyId, role)).then(function (res) {
4709
5119
  var data = res.data;
4710
5120
  var requestBody = {
4711
5121
  accessToken: data.accessToken,
@@ -4726,16 +5136,15 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4726
5136
  return Promise.reject(e);
4727
5137
  }
4728
5138
  };
4729
- var handleLogOutAcademy = function handleLogOutAcademy(selectedAcademy, callback) {
5139
+ var handleLogOutAcademy = function handleLogOutAcademy(callback) {
4730
5140
  try {
4731
5141
  var _temp7 = function _temp7() {
4732
5142
  dispatch(setLoading(false));
4733
5143
  callback();
4734
5144
  };
4735
5145
  dispatch(setLoading(true));
4736
- var academyDomain = selectedAcademy ? selectedAcademy.domain : undefined;
4737
5146
  var _temp6 = _catch(function () {
4738
- return Promise.resolve(switchAcademy(0)).then(function (res) {
5147
+ return Promise.resolve(switchAcademy(0, role)).then(function (res) {
4739
5148
  var data = res.data;
4740
5149
  var requestBody = {
4741
5150
  accessToken: data.accessToken,
@@ -4743,12 +5152,11 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4743
5152
  academyId: 0,
4744
5153
  role: role
4745
5154
  };
4746
- academyDomain && localStorage.setItem(ACADEMY_DOMAIN, academyDomain);
4747
- !academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
4748
- 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 () {});
4749
5157
  });
4750
5158
  }, function (error) {
4751
- academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
5159
+ localStorage.removeItem(ACADEMY_DOMAIN);
4752
5160
  toast.error(getErrorMessage(t, error));
4753
5161
  });
4754
5162
  return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6));
@@ -4758,7 +5166,7 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4758
5166
  };
4759
5167
  useEffect(function () {
4760
5168
  canFetchAcademies && getAcademies();
4761
- }, [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(",")]);
4762
5170
  useEffect(function () {
4763
5171
  canFetchAcademies && isReFetchUserAcademies && getAcademies(false);
4764
5172
  }, [canFetchAcademies, isReFetchUserAcademies]);
@@ -4854,7 +5262,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4854
5262
  display: "flex",
4855
5263
  alignItems: "center"
4856
5264
  }
4857
- }, selectedAcademy !== null && selectedAcademy !== void 0 && selectedAcademy.name ? React__default.createElement(Stack, {
5265
+ }, React__default.createElement(Stack, {
4858
5266
  flexDirection: "column",
4859
5267
  gap: "2px"
4860
5268
  }, React__default.createElement(Typography, {
@@ -4875,28 +5283,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4875
5283
  lineHeight: '1.5em',
4876
5284
  color: styles.gray_500
4877
5285
  }
4878
- }, selectedAcademy.name)) : React__default.createElement(Stack, {
4879
- flexDirection: "column",
4880
- gap: "2px"
4881
- }, React__default.createElement(Typography, {
4882
- textAlign: "start",
4883
- className: "" + styles["line-clamp"],
4884
- sx: {
4885
- fontSize: 14,
4886
- fontWeight: 900,
4887
- lineHeight: '1.5em',
4888
- color: styles.gray_900
4889
- }
4890
- }), React__default.createElement(Typography, {
4891
- textAlign: "start",
4892
- className: "" + styles["line-clamp"],
4893
- sx: {
4894
- fontSize: 14,
4895
- fontWeight: 600,
4896
- lineHeight: '1.5em',
4897
- color: styles.gray_500
4898
- }
4899
- }, 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, {
4900
5287
  item: true,
4901
5288
  xs: 6,
4902
5289
  lg: 2,
@@ -4996,7 +5383,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4996
5383
  }
4997
5384
  }, option.name))), option.id === (selectedAcademy === null || selectedAcademy === void 0 ? void 0 : selectedAcademy.id) && React__default.createElement("div", {
4998
5385
  onClick: function onClick() {
4999
- return handleLogOutAcademy(selectedAcademy, handleClose);
5386
+ return handleLogOutAcademy(handleClose);
5000
5387
  }
5001
5388
  }, React__default.createElement(IoCloseCircle, {
5002
5389
  size: 18,
@@ -6502,14 +6889,14 @@ var MessageStatus;
6502
6889
  })(MessageStatus || (MessageStatus = {}));
6503
6890
 
6504
6891
  var types = {
6505
- __proto__: null,
6506
- get MessageSortBy () { return MessageSortBy; },
6507
- get OrderBy () { return OrderBy; },
6508
- get StudentSortBy () { return StudentSortBy; },
6509
- get StudentOrderBy () { return StudentOrderBy; },
6510
- get MessageAction () { return MessageAction; },
6511
- get MessageSourceType () { return MessageSourceType; },
6512
- 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; }
6513
6900
  };
6514
6901
 
6515
6902
  var ExamStatus;
@@ -6533,7 +6920,8 @@ var MESSAGE_DEFAULT_FILTER = {
6533
6920
  sortColumnName: MessageSortBy.CreatedAt
6534
6921
  };
6535
6922
 
6536
- var useMessageList = function useMessageList() {
6923
+ var useMessageList = function useMessageList(_ref) {
6924
+ var student = _ref.student;
6537
6925
  var _useState = useState([]),
6538
6926
  messages = _useState[0],
6539
6927
  setMessages = _useState[1];
@@ -6545,13 +6933,19 @@ var useMessageList = function useMessageList() {
6545
6933
  setLoading = _useState3[1];
6546
6934
  var _useTranslation = useTranslation(),
6547
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;
6548
6942
  var getMessageList = function getMessageList(conversationId) {
6549
6943
  try {
6550
- var _temp2 = function _temp2() {
6944
+ var _temp3 = function _temp3() {
6551
6945
  setLoading(false);
6552
6946
  };
6553
6947
  setLoading(true);
6554
- var _temp = _catch(function () {
6948
+ var _temp2 = _catch(function () {
6555
6949
  var filter = _extends({}, messageFilter);
6556
6950
  return Promise.resolve(getMessagesByConversation(conversationId, filter)).then(function (res) {
6557
6951
  return Promise.resolve(updateLastTimeReadConversation(conversationId)).then(function () {
@@ -6563,19 +6957,32 @@ var useMessageList = function useMessageList() {
6563
6957
  totalPages: res.data.totalPages
6564
6958
  });
6565
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 () {});
6566
6973
  });
6567
6974
  });
6568
6975
  }, function (error) {
6569
6976
  toast.error(getErrorMessage(t, error));
6570
6977
  });
6571
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
6978
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
6572
6979
  } catch (e) {
6573
6980
  return Promise.reject(e);
6574
6981
  }
6575
6982
  };
6576
6983
  var handleLoadMore = function handleLoadMore(conversationId) {
6577
6984
  try {
6578
- var _temp4 = function _temp4(_result) {
6985
+ var _temp5 = function _temp5(_result) {
6579
6986
  if (_exit) return _result;
6580
6987
  setLoading(false);
6581
6988
  return true;
@@ -6586,7 +6993,7 @@ var useMessageList = function useMessageList() {
6586
6993
  currentPage: ((messageFilter === null || messageFilter === void 0 ? void 0 : messageFilter.currentPage) || 1) + 1
6587
6994
  });
6588
6995
  setLoading(true);
6589
- var _temp3 = _catch(function () {
6996
+ var _temp4 = _catch(function () {
6590
6997
  return Promise.resolve(getMessagesByConversation(conversationId, filter)).then(function (res) {
6591
6998
  return Promise.resolve(updateLastTimeReadConversation(conversationId)).then(function () {
6592
6999
  if (res.data.items.length) {
@@ -6610,7 +7017,7 @@ var useMessageList = function useMessageList() {
6610
7017
  toast.error(getErrorMessage(t, error));
6611
7018
  _exit = true;
6612
7019
  });
6613
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
7020
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
6614
7021
  } catch (e) {
6615
7022
  return Promise.reject(e);
6616
7023
  }
@@ -6621,19 +7028,19 @@ var useMessageList = function useMessageList() {
6621
7028
  };
6622
7029
  var handleDeleteMessage = function handleDeleteMessage(conversationId, id, callback) {
6623
7030
  try {
6624
- var _temp6 = function _temp6(_result2) {
7031
+ var _temp7 = function _temp7(_result2) {
6625
7032
  if (_exit2) return _result2;
6626
7033
  callback();
6627
7034
  };
6628
7035
  var _exit2 = false;
6629
7036
  if (isLoading) return Promise.resolve();
6630
- var _temp5 = _catch(function () {
7037
+ var _temp6 = _catch(function () {
6631
7038
  return Promise.resolve(deleteMessage(conversationId, id)).then(function () {});
6632
7039
  }, function (error) {
6633
7040
  toast.error(getErrorMessage(t, error));
6634
7041
  _exit2 = true;
6635
7042
  });
6636
- return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
7043
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6));
6637
7044
  } catch (e) {
6638
7045
  return Promise.reject(e);
6639
7046
  }
@@ -6657,19 +7064,19 @@ var useMessageList = function useMessageList() {
6657
7064
  };
6658
7065
  var handleUpdateMessage = function handleUpdateMessage(conversationId, id, message, callback) {
6659
7066
  try {
6660
- var _temp8 = function _temp8(_result3) {
7067
+ var _temp9 = function _temp9(_result3) {
6661
7068
  if (_exit3) return _result3;
6662
7069
  setLoading(false);
6663
7070
  callback();
6664
7071
  };
6665
7072
  var _exit3 = false;
6666
- var _temp7 = _catch(function () {
7073
+ var _temp8 = _catch(function () {
6667
7074
  return Promise.resolve(updateMessage(conversationId, id, message)).then(function () {});
6668
7075
  }, function (error) {
6669
7076
  toast.error(getErrorMessage(t, error));
6670
7077
  _exit3 = true;
6671
7078
  });
6672
- return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
7079
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp9) : _temp9(_temp8));
6673
7080
  } catch (e) {
6674
7081
  return Promise.reject(e);
6675
7082
  }
@@ -6724,7 +7131,9 @@ var useChatContainer = function useChatContainer(props) {
6724
7131
  var _useState4 = useState(true),
6725
7132
  isScrollToEnd = _useState4[0],
6726
7133
  setScrollToEnd = _useState4[1];
6727
- var _useMessageList = useMessageList(),
7134
+ var _useMessageList = useMessageList({
7135
+ student: student
7136
+ }),
6728
7137
  isLoadingMessages = _useMessageList.isLoading,
6729
7138
  messages = _useMessageList.messages,
6730
7139
  messageFilter = _useMessageList.messageFilter,
@@ -7007,8 +7416,10 @@ var usePusherConversation = function usePusherConversation(onNewMessageConversat
7007
7416
  return {};
7008
7417
  };
7009
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);
7010
7421
  var InputText = function InputText(props) {
7011
- return React__default.createElement(TextField, Object.assign({
7422
+ return React__default.createElement(BorderedTextField, Object.assign({
7012
7423
  sx: {
7013
7424
  "& input": {
7014
7425
  py: "7.5px",
@@ -7800,12 +8211,22 @@ var OrderType;
7800
8211
  OrderType["DESC"] = "DESC";
7801
8212
  })(OrderType || (OrderType = {}));
7802
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
+
7803
8223
 
7804
8224
 
7805
8225
  var index = {
7806
- __proto__: null,
7807
- get OrderType () { return OrderType; },
7808
- 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; }
7809
8230
  };
7810
8231
 
7811
8232
  var TextbookSortBy;
@@ -8049,6 +8470,8 @@ var useExam = function useExam(props) {
8049
8470
  };
8050
8471
  };
8051
8472
 
8473
+ var PAGE_TITLE_DETAIL = "textbook_detail";
8474
+ var PAGE_TITLE_CREATE = "create_textbook";
8052
8475
  var useTextbookDetail = function useTextbookDetail(props) {
8053
8476
  var role = props.role,
8054
8477
  isReadonlyParam = props.isReadonlyParam,
@@ -8750,7 +9173,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
8750
9173
  handleChangeExamRequest(exam);
8751
9174
  };
8752
9175
  useEffect(function () {
8753
- document.title = t("textbooks") + " | " + t(id ? "textbook_detail" : "create_textbook");
9176
+ document.title = t("study_peak") + " | " + t(id ? PAGE_TITLE_DETAIL : PAGE_TITLE_CREATE);
8754
9177
  }, [id, t]);
8755
9178
  useEffect(function () {
8756
9179
  setReadonly(textbook.isCreatedByAdmin || !!isReadonlyParam);
@@ -9808,6 +10231,22 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
9808
10231
  }));
9809
10232
  };
9810
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
+
9811
10250
  var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superUrls, homeUrl, homeAcademyUrl, isAuthPage) {
9812
10251
  if (isAuthPage === void 0) {
9813
10252
  isAuthPage = true;
@@ -9826,9 +10265,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9826
10265
  var paramAcademyDomain = searchParams.get("domain");
9827
10266
  var domain = getAcademyDomain();
9828
10267
  if (!!email !== isAuthPage) return;
9829
- var isSuperUrl = superUrls.some(function (i) {
9830
- return pathname.startsWith(i);
9831
- });
10268
+ var isSuperUrl = checkSuperUrl(superUrls, pathname);
9832
10269
  if (!academyDomain) {
9833
10270
  if (!isSuperUrl) {
9834
10271
  !paramAcademyDomain && domain && searchParams.set("domain", domain);
@@ -9869,7 +10306,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9869
10306
  };
9870
10307
  useEffect(function () {
9871
10308
  changeAcademySearchParams();
9872
- }, [window.location.pathname, window.location.search, isAuthPage, email, academyDomain]);
10309
+ }, [pathname, window.location.search, isAuthPage, email, academyDomain]);
9873
10310
  };
9874
10311
 
9875
10312
  var DEFAULT_PAGING_RESPONSE = {
@@ -9987,12 +10424,13 @@ var useList = function useList(fetchData, defaultQuery) {
9987
10424
 
9988
10425
 
9989
10426
  var index$1 = {
9990
- __proto__: null,
9991
- useLogin: useLogin,
9992
- useAutoAcademyDomain: useAutoAcademyDomain,
9993
- useList: useList
10427
+ __proto__: null,
10428
+ useLogin: useLogin,
10429
+ useAutoAcademyDomain: useAutoAcademyDomain,
10430
+ useList: useList
9994
10431
  };
9995
10432
 
10433
+ var PAGE_TITLE$1 = "textbooks";
9996
10434
  var useTextbookList = function useTextbookList(props) {
9997
10435
  var role = props.role,
9998
10436
  navigate = props.navigate;
@@ -10056,6 +10494,9 @@ var useTextbookList = function useTextbookList(props) {
10056
10494
  return Promise.reject(e);
10057
10495
  }
10058
10496
  };
10497
+ useEffect(function () {
10498
+ document.title = t("study_peak") + " | " + t(PAGE_TITLE$1);
10499
+ }, [t]);
10059
10500
  return {
10060
10501
  filter: filter,
10061
10502
  textSearchRef: textSearchRef,
@@ -10279,9 +10720,9 @@ var TextbookList = function TextbookList(props) {
10279
10720
 
10280
10721
 
10281
10722
  var index$2 = {
10282
- __proto__: null,
10283
- TextbookList: TextbookList,
10284
- TextbookDetail: TextbookViewDetail
10723
+ __proto__: null,
10724
+ TextbookList: TextbookList,
10725
+ TextbookDetail: TextbookViewDetail
10285
10726
  };
10286
10727
 
10287
10728
  var _excluded$5 = ["defaultValue", "options", "isDisabled", "scrollBottom", "value", "isMulti"];
@@ -11189,6 +11630,28 @@ var defaultSeries = function defaultSeries(t) {
11189
11630
  }];
11190
11631
  };
11191
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
+
11192
11655
  var useExamResult = function useExamResult(searchParam, history, examSessionId, studentId, code, handleChangeTab, selectedTab) {
11193
11656
  var _allSeries$dataChartI;
11194
11657
  if (examSessionId === void 0) {
@@ -11213,35 +11676,39 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11213
11676
  var _state$common2;
11214
11677
  return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
11215
11678
  });
11216
- var _useState = useState(),
11217
- resultData = _useState[0],
11218
- setResultData = _useState[1];
11679
+ var _useState = useState(false),
11680
+ isLoading = _useState[0],
11681
+ setIsLoading = _useState[1];
11219
11682
  var _useState2 = useState(),
11220
- effectSize = _useState2[0],
11221
- setEffectSize = _useState2[1];
11222
- var _useState3 = useState([]),
11223
- longTimeSpend = _useState3[0],
11224
- setLongTimeSpend = _useState3[1];
11683
+ resultData = _useState2[0],
11684
+ setResultData = _useState2[1];
11685
+ var _useState3 = useState(),
11686
+ effectSize = _useState3[0],
11687
+ setEffectSize = _useState3[1];
11225
11688
  var _useState4 = useState([]),
11226
- timelyOrderQuestions = _useState4[0],
11227
- setTimelyOrderQuestions = _useState4[1];
11689
+ longTimeSpend = _useState4[0],
11690
+ setLongTimeSpend = _useState4[1];
11228
11691
  var _useState5 = useState([]),
11229
- categoryResponses = _useState5[0],
11230
- setCategoryResponses = _useState5[1];
11231
- var _useState6 = useState(0),
11232
- dataChartIndex = _useState6[0],
11233
- setDataChartIndex = _useState6[1];
11234
- var _useState7 = useState(""),
11235
- openProblem = _useState7[0],
11236
- 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];
11237
11703
  var _useTranslation = useTranslation(),
11238
11704
  t = _useTranslation.t;
11239
11705
  var getStudentData = function getStudentData(examCode) {
11240
11706
  try {
11241
11707
  var _temp2 = function _temp2() {
11242
- dispatch(setLoading(false));
11708
+ setIsLoading(false);
11243
11709
  };
11244
11710
  if (!examCode) return Promise.resolve();
11711
+ setIsLoading(true);
11245
11712
  var _temp = _catch(function () {
11246
11713
  return Promise.resolve(Promise.all([getResults(examCode), getResultsLongTimeSpend(examCode), getResultsEffectSize(examCode), getResultsTimeOrderQuestion(examCode), getResultsCategories(examCode)])).then(function (result) {
11247
11714
  var _result$0$data, _result$1$data, _result$2$data, _result$3$data, _result$4$data;
@@ -11263,14 +11730,17 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11263
11730
  };
11264
11731
  var getStudentDataByTeacher = function getStudentDataByTeacher(examCode, examSessionId, studentId) {
11265
11732
  try {
11266
- var _temp4 = function _temp4() {
11267
- dispatch(setLoading(false));
11733
+ var _temp5 = function _temp5() {
11734
+ setIsLoading(false);
11268
11735
  };
11269
11736
  if (!examCode || !examSessionId || !studentId) return Promise.resolve();
11270
- dispatch(setLoading(true));
11271
- var _temp3 = _catch(function () {
11737
+ setIsLoading(true);
11738
+ var _temp4 = _catch(function () {
11272
11739
  return Promise.resolve(Promise.all([getResultsTeacher(examSessionId, studentId), getResultsLongTimeSpendTeacher(examSessionId, studentId), getResultsEffectSizeTeacher(examSessionId, studentId), getResultsTimeOrderQuestionTeacher(examSessionId, studentId), getResultsCategoriesTeacher(examSessionId, studentId)])).then(function (result) {
11273
11740
  var _result$0$data2, _result$1$data2, _result$2$data2, _result$3$data2, _result$4$data2;
11741
+ function _temp3(_createRecentUserActi) {
11742
+ _createRecentUserActi;
11743
+ }
11274
11744
  handleChangeTab(0);
11275
11745
  setDataChartIndex(0);
11276
11746
  setResultData((_result$0$data2 = result[0].data) === null || _result$0$data2 === void 0 ? void 0 : _result$0$data2.data);
@@ -11278,11 +11748,22 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11278
11748
  setEffectSize((_result$2$data2 = result[2].data) === null || _result$2$data2 === void 0 ? void 0 : _result$2$data2.data);
11279
11749
  setTimelyOrderQuestions((_result$3$data2 = result[3].data) === null || _result$3$data2 === void 0 ? void 0 : _result$3$data2.data);
11280
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);
11281
11762
  });
11282
11763
  }, function (error) {
11283
11764
  toast.error(getErrorMessage(t, error));
11284
11765
  });
11285
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11766
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
11286
11767
  } catch (e) {
11287
11768
  return Promise.reject(e);
11288
11769
  }
@@ -11458,13 +11939,13 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11458
11939
  var series = (_allSeries$dataChartI = allSeries[dataChartIndex]) != null ? _allSeries$dataChartI : defaultSeries(t);
11459
11940
  var handleExportPdf = function handleExportPdf() {
11460
11941
  try {
11461
- var _temp22 = function _temp22(_result) {
11942
+ var _temp24 = function _temp24(_result) {
11462
11943
  if (_exit) return _result;
11463
11944
  dispatch(setLoading(false));
11464
11945
  };
11465
11946
  var _exit = false;
11466
11947
  dispatch(setLoading(true));
11467
- var _temp21 = _catch(function () {
11948
+ var _temp23 = _catch(function () {
11468
11949
  var canvas = document.querySelector("#canvas");
11469
11950
  var headerCanvas = document.querySelector("#header-canvas");
11470
11951
  if (!canvas || !headerCanvas) {
@@ -11486,24 +11967,38 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11486
11967
  var imgWidth = WIDTH_PAPER;
11487
11968
  var chartWidth = WIDTH_PAPER - 20;
11488
11969
  return Promise.resolve(html2canvas(headerCanvas)).then(function (header) {
11489
- function _temp20() {
11970
+ function _temp22() {
11971
+ function _temp20(_createRecentUserActi2) {
11972
+ _createRecentUserActi2;
11973
+ }
11490
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);
11491
11986
  }
11492
11987
  var imgHeaderHeight = header.height * imgWidth / header.width;
11493
11988
  var imgHeaderData = header.toDataURL('image/png');
11494
11989
  doc.addImage(imgHeaderData, 'PNG', 0, 0, imgWidth, imgHeaderHeight);
11495
11990
  line += imgHeaderHeight;
11496
11991
  if (line > HEIGHT_PAPER) breakPage();
11497
- var _temp19 = function () {
11992
+ var _temp21 = function () {
11498
11993
  if (canvas && canvas.childElementCount > 0) {
11499
11994
  var _index = 0;
11500
- var _temp18 = _for(function () {
11995
+ var _temp19 = _for(function () {
11501
11996
  return _index < canvas.childElementCount;
11502
11997
  }, function () {
11503
11998
  return _index++;
11504
11999
  }, function () {
11505
- function _temp17() {
11506
- function _temp15() {
12000
+ function _temp18() {
12001
+ function _temp16() {
11507
12002
  line += 20;
11508
12003
  }
11509
12004
  var printChartTitle = function printChartTitle() {
@@ -11518,11 +12013,11 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11518
12013
  return Promise.reject(e);
11519
12014
  }
11520
12015
  };
11521
- var _temp14 = function () {
12016
+ var _temp15 = function () {
11522
12017
  if (printContainerEls.length) {
11523
- var _temp13 = _forTo(printContainerEls, function (i) {
11524
- function _temp12() {
11525
- function _temp10() {
12018
+ var _temp14 = _forTo(printContainerEls, function (i) {
12019
+ function _temp13() {
12020
+ function _temp11() {
11526
12021
  var printTitle = function printTitle() {
11527
12022
  try {
11528
12023
  if (!printTitleHeight || !printTitleData) return Promise.resolve();
@@ -11551,10 +12046,10 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11551
12046
  var printContents = printContainerEl.querySelectorAll("." + PrintContentClassName);
11552
12047
  if (!printContents.length) return;
11553
12048
  printTitle();
11554
- var _temp8 = _forTo(printContents, function (j) {
12049
+ var _temp9 = _forTo(printContents, function (j) {
11555
12050
  var rowItem = printContents[j];
11556
12051
  return Promise.resolve(html2canvas(rowItem)).then(function (rowItemCanvas) {
11557
- function _temp7() {
12052
+ function _temp8() {
11558
12053
  doc.addImage(data, 'PNG', 10, line, chartWidth, height);
11559
12054
  line += height;
11560
12055
  }
@@ -11562,25 +12057,25 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11562
12057
  var data = rowItemCanvas.toDataURL('image/png');
11563
12058
  if (i === 0 && j === 0 && line + height + (printHeaderHeight || 0) + ((chartTitleHeight || 0) + 10) + 20 > HEIGHT_PAPER) breakPage();
11564
12059
  i === 0 && j === 0 && printChartTitle();
11565
- var _temp6 = function () {
12060
+ var _temp7 = function () {
11566
12061
  if (line + height + 20 > HEIGHT_PAPER) {
11567
12062
  breakPage();
11568
12063
  return Promise.resolve(printHeader()).then(function () {});
11569
12064
  } else {
11570
- var _temp23 = function () {
12065
+ var _temp25 = function () {
11571
12066
  if (j === 0) {
11572
12067
  return Promise.resolve(printHeader(10)).then(function () {});
11573
12068
  }
11574
12069
  }();
11575
- if (_temp23 && _temp23.then) return _temp23.then(function () {});
12070
+ if (_temp25 && _temp25.then) return _temp25.then(function () {});
11576
12071
  }
11577
12072
  }();
11578
- return _temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6);
12073
+ return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
11579
12074
  });
11580
12075
  });
11581
- if (_temp8 && _temp8.then) return _temp8.then(function () {});
12076
+ if (_temp9 && _temp9.then) return _temp9.then(function () {});
11582
12077
  }
11583
- var _temp9 = function () {
12078
+ var _temp10 = function () {
11584
12079
  if (printHeaderEl) {
11585
12080
  return Promise.resolve(html2canvas(printHeaderEl)).then(function (_html2canvas3) {
11586
12081
  printHeaderCanvas = _html2canvas3;
@@ -11589,7 +12084,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11589
12084
  });
11590
12085
  }
11591
12086
  }();
11592
- return _temp9 && _temp9.then ? _temp9.then(_temp10) : _temp10(_temp9);
12087
+ return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
11593
12088
  }
11594
12089
  var printContainerEl = printContainerEls[i];
11595
12090
  var printTitleEl = printContainerEl.querySelector("." + PrintTitleClassName);
@@ -11600,7 +12095,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11600
12095
  var printHeaderCanvas = null;
11601
12096
  var printHeaderHeight = null;
11602
12097
  var printHeaderData = "";
11603
- var _temp11 = function () {
12098
+ var _temp12 = function () {
11604
12099
  if (printTitleEl) {
11605
12100
  return Promise.resolve(html2canvas(printTitleEl)).then(function (_html2canvas2) {
11606
12101
  printTitleCanvas = _html2canvas2;
@@ -11609,9 +12104,9 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11609
12104
  });
11610
12105
  }
11611
12106
  }();
11612
- return _temp11 && _temp11.then ? _temp11.then(_temp12) : _temp12(_temp11);
12107
+ return _temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12);
11613
12108
  });
11614
- if (_temp13 && _temp13.then) return _temp13.then(function () {});
12109
+ if (_temp14 && _temp14.then) return _temp14.then(function () {});
11615
12110
  } else {
11616
12111
  return Promise.resolve(html2canvas(chart)).then(function (chartCanvas) {
11617
12112
  var imgBodyHeight = chartCanvas.height * chartWidth / chartCanvas.width;
@@ -11624,7 +12119,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11624
12119
  });
11625
12120
  }
11626
12121
  }();
11627
- return _temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14);
12122
+ return _temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15);
11628
12123
  }
11629
12124
  var chart = canvas.children.item(_index);
11630
12125
  if (chart.getAttribute("id") === "header-canvas") return;
@@ -11633,7 +12128,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11633
12128
  var printChartTitleCanvas = null;
11634
12129
  var chartTitleHeight = null;
11635
12130
  var chartTitleData = "";
11636
- var _temp16 = function () {
12131
+ var _temp17 = function () {
11637
12132
  if (chartTitle && printContainerEls.length) {
11638
12133
  return Promise.resolve(html2canvas(chartTitle)).then(function (_html2canvas) {
11639
12134
  printChartTitleCanvas = _html2canvas;
@@ -11642,12 +12137,12 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11642
12137
  });
11643
12138
  }
11644
12139
  }();
11645
- return _temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16);
12140
+ return _temp17 && _temp17.then ? _temp17.then(_temp18) : _temp18(_temp17);
11646
12141
  });
11647
- if (_temp18 && _temp18.then) return _temp18.then(function () {});
12142
+ if (_temp19 && _temp19.then) return _temp19.then(function () {});
11648
12143
  }
11649
12144
  }();
11650
- return _temp19 && _temp19.then ? _temp19.then(_temp20) : _temp20(_temp19);
12145
+ return _temp21 && _temp21.then ? _temp21.then(_temp22) : _temp22(_temp21);
11651
12146
  });
11652
12147
  }, function (error) {
11653
12148
  console.log({
@@ -11655,7 +12150,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11655
12150
  });
11656
12151
  toast.error(getErrorMessage(t, error));
11657
12152
  });
11658
- return Promise.resolve(_temp21 && _temp21.then ? _temp21.then(_temp22) : _temp22(_temp21));
12153
+ return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23));
11659
12154
  } catch (e) {
11660
12155
  return Promise.reject(e);
11661
12156
  }
@@ -11667,6 +12162,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
11667
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");
11668
12163
  }, [resultData === null || resultData === void 0 ? void 0 : resultData.startTime, resultData === null || resultData === void 0 ? void 0 : resultData.finishTime]);
11669
12164
  return {
12165
+ isLoading: isLoading,
11670
12166
  examTime: examTime,
11671
12167
  series: series,
11672
12168
  chartOptions: chartOptions,
@@ -14418,6 +14914,7 @@ var ExamResultV2 = function ExamResultV2(_ref) {
14418
14914
  selected = _useTab.selected,
14419
14915
  handleChangeTab = _useTab.handleChangeTab;
14420
14916
  var _useExamResult = useExamResult(searchParams, history, examSessionId, studentId, code, handleChangeTab, selected),
14917
+ isLoading = _useExamResult.isLoading,
14421
14918
  examTime = _useExamResult.examTime,
14422
14919
  series = _useExamResult.series,
14423
14920
  allSeries = _useExamResult.allSeries,
@@ -14442,7 +14939,9 @@ var ExamResultV2 = function ExamResultV2(_ref) {
14442
14939
  openCreateQuestionDialog = _useCreateQuestionDia.openCreateQuestionDialog,
14443
14940
  toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion;
14444
14941
  var isTabletUp = useMediaQuery('(min-width:900px)');
14445
- 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", {
14446
14945
  style: {
14447
14946
  width: "100%"
14448
14947
  }
@@ -14876,10 +15375,22 @@ var ExamResultV2 = function ExamResultV2(_ref) {
14876
15375
  })) : React__default.createElement(Fragment$1, null));
14877
15376
  };
14878
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
+
14879
15388
 
14880
15389
 
14881
15390
  var index$3 = {
14882
- __proto__: null
15391
+ __proto__: null,
15392
+ get OrderBy () { return OrderBy$1; },
15393
+ get RecentUserActionSortBy () { return RecentUserActionSortBy; }
14883
15394
  };
14884
15395
 
14885
15396
  var getLocalDayOfWeek = function getLocalDayOfWeek(utcDateTime, dayOfWeek) {
@@ -14915,12 +15426,12 @@ var getRemainTime = function getRemainTime(startTime, duration) {
14915
15426
  };
14916
15427
 
14917
15428
  var times = {
14918
- __proto__: null,
14919
- getLocalDayOfWeek: getLocalDayOfWeek,
14920
- getUtcDayOfWeek: getUtcDayOfWeek,
14921
- timeSpanToLocalMoment: timeSpanToLocalMoment,
14922
- convertHHMMSStoSeconds: convertHHMMSStoSeconds,
14923
- getRemainTime: getRemainTime
15429
+ __proto__: null,
15430
+ getLocalDayOfWeek: getLocalDayOfWeek,
15431
+ getUtcDayOfWeek: getUtcDayOfWeek,
15432
+ timeSpanToLocalMoment: timeSpanToLocalMoment,
15433
+ convertHHMMSStoSeconds: convertHHMMSStoSeconds,
15434
+ getRemainTime: getRemainTime
14924
15435
  };
14925
15436
 
14926
15437
  var SIGN_IN_SUPER_ADMIN_URL = SUPER_ADMIN_BASE_URL + "/api/auth/login";
@@ -14946,6 +15457,7 @@ var signInSuperAdminApi = function signInSuperAdminApi(_ref2) {
14946
15457
  });
14947
15458
  };
14948
15459
 
15460
+ var PAGE_TITLE$2 = "sign_in";
14949
15461
  var useLogin$2 = function useLogin(_ref) {
14950
15462
  var history = _ref.history,
14951
15463
  _ref$role = _ref.role,
@@ -15036,8 +15548,13 @@ var useLogin$2 = function useLogin(_ref) {
15036
15548
  };
15037
15549
  useEffect(function () {
15038
15550
  var token = getAccessToken();
15039
- if (token) window.location.href = "/";
15040
- }, []);
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]);
15041
15558
  return {
15042
15559
  handleSubmit: handleSubmit,
15043
15560
  handleClearAcademyDomain: handleClearAcademyDomain,
@@ -15538,15 +16055,14 @@ var Header = function Header(_ref) {
15538
16055
  var path = _ref2.path,
15539
16056
  icon = _ref2.icon,
15540
16057
  label = _ref2.label,
15541
- isMain = _ref2.isMain,
15542
16058
  activePaths = _ref2.activePaths;
15543
16059
  return React__default.createElement(Link, {
15544
16060
  key: path,
15545
16061
  "aria-current": "page",
15546
- to: !academyDomain && !isMain ? "#" : path,
16062
+ to: !academyDomain ? "#" : path,
15547
16063
  className: "text-decoration-none " + ((activePaths !== null && activePaths !== void 0 && activePaths.length ? activePaths.some(function (a) {
15548
- return pathname.startsWith(a);
15549
- }) : 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"] : "")
15550
16066
  }, React__default.createElement(Stack, {
15551
16067
  sx: {
15552
16068
  justifyContent: "center",
@@ -15575,7 +16091,7 @@ var Header = function Header(_ref) {
15575
16091
  alignItems: "center"
15576
16092
  }, React__default.createElement(Link, {
15577
16093
  "aria-current": "page",
15578
- to: homeRoute.path,
16094
+ to: academyDomain ? homeRoute.path : academyListRoute.path,
15579
16095
  className: "border-none"
15580
16096
  }, React__default.createElement(Stack, {
15581
16097
  justifyContent: "center",
@@ -15593,53 +16109,28 @@ var Header = function Header(_ref) {
15593
16109
  }))));
15594
16110
  };
15595
16111
 
15596
- var ACADEMY_URL$1 = BASE_URL + "/api/academy";
15597
- var getAcademyList$1 = function getAcademyList() {
15598
- return api.get("" + ACADEMY_URL$1);
15599
- };
15600
- var switchAcademy$1 = function switchAcademy(academyId) {
15601
- return api.post(ACADEMY_URL$1 + "/switch-academy?academyId=" + academyId);
15602
- };
15603
-
15604
16112
  var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, homeUrl, registerUrl) {
15605
16113
  var dispatch = useDispatch();
15606
16114
  var _useLogin = useLogin(history, homeAcademyUrl, homeUrl, registerUrl),
15607
16115
  handleLoginAccessToken = _useLogin.handleLoginAccessToken;
15608
- var _useState = useState([]),
15609
- academyList = _useState[0],
15610
- 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
+ });
15611
16120
  var email = useSelector(function (state) {
15612
16121
  var _state$common, _state$common$user;
15613
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;
15614
16123
  });
15615
16124
  var _useTranslation = useTranslation(),
15616
16125
  t = _useTranslation.t;
15617
- var getAcademies = function getAcademies() {
16126
+ var handleSwitchAcademy = function handleSwitchAcademy(id, domain) {
15618
16127
  try {
15619
16128
  var _temp2 = function _temp2() {
15620
16129
  dispatch(setLoading(false));
15621
16130
  };
15622
16131
  dispatch(setLoading(true));
15623
16132
  var _temp = _catch(function () {
15624
- return Promise.resolve(getAcademyList$1()).then(function (res) {
15625
- setAcademyList(res.data.items || []);
15626
- });
15627
- }, function (error) {
15628
- toast.error(getErrorMessage(t, error));
15629
- });
15630
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
15631
- } catch (e) {
15632
- return Promise.reject(e);
15633
- }
15634
- };
15635
- var handleSwitchAcademy = function handleSwitchAcademy(id, domain) {
15636
- try {
15637
- var _temp4 = function _temp4() {
15638
- dispatch(setLoading(false));
15639
- };
15640
- dispatch(setLoading(true));
15641
- var _temp3 = _catch(function () {
15642
- return Promise.resolve(switchAcademy$1(id)).then(function (res) {
16133
+ return Promise.resolve(switchSuperAdminAcademy(id, role)).then(function (res) {
15643
16134
  var data = res.data;
15644
16135
  var requestBody = {
15645
16136
  accessToken: data.accessToken,
@@ -15653,14 +16144,11 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
15653
16144
  }, function (error) {
15654
16145
  toast.error(getErrorMessage(t, error));
15655
16146
  });
15656
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
16147
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
15657
16148
  } catch (e) {
15658
16149
  return Promise.reject(e);
15659
16150
  }
15660
16151
  };
15661
- useEffect(function () {
15662
- getAcademies();
15663
- }, []);
15664
16152
  return {
15665
16153
  academyList: academyList,
15666
16154
  handleSwitchAcademy: handleSwitchAcademy
@@ -15700,6 +16188,220 @@ var AcademyCard = function AcademyCard(_ref) {
15700
16188
  }, t("switch"))));
15701
16189
  };
15702
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";
15703
16405
  var AcademyList = function AcademyList(_ref) {
15704
16406
  var theme = _ref.theme,
15705
16407
  history = _ref.history,
@@ -15709,10 +16411,19 @@ var AcademyList = function AcademyList(_ref) {
15709
16411
  registerUrl = _ref.registerUrl;
15710
16412
  var _useTranslation = useTranslation(),
15711
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
+ };
15712
16420
  useAutoAcademyDomain(function () {}, history, [], "", window.location.pathname, true);
15713
16421
  var _useAcademyList = useAcademyList(history, role, homeAcademyUrl, homeUrl, registerUrl),
15714
16422
  academyList = _useAcademyList.academyList,
15715
16423
  handleSwitchAcademy = _useAcademyList.handleSwitchAcademy;
16424
+ useEffect(function () {
16425
+ document.title = t("study_peak") + " | " + t(PAGE_TITLE$3);
16426
+ }, [t]);
15716
16427
  return React__default.createElement("div", {
15717
16428
  className: "py-3 px-4"
15718
16429
  }, React__default.createElement(Grid$1, {
@@ -15721,10 +16432,18 @@ var AcademyList = function AcademyList(_ref) {
15721
16432
  }, React__default.createElement(Grid$1, {
15722
16433
  item: true,
15723
16434
  xs: 12
16435
+ }, React__default.createElement(Stack, {
16436
+ direction: "row",
16437
+ justifyContent: "space-between",
16438
+ alignItems: "center",
16439
+ spacing: 3
15724
16440
  }, React__default.createElement(Typography$1, {
15725
16441
  fontSize: 24,
15726
16442
  fontWeight: 600
15727
- }, 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, {
15728
16447
  item: true,
15729
16448
  xs: 12
15730
16449
  }, React__default.createElement(Grid$1, {
@@ -15744,7 +16463,15 @@ var AcademyList = function AcademyList(_ref) {
15744
16463
  }), !academyList.length && React__default.createElement(Grid$1, {
15745
16464
  item: true,
15746
16465
  xs: 3
15747
- }, 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
+ }));
15748
16475
  };
15749
16476
 
15750
16477
  var EXAM_SESSION_URL$1 = BASE_URL + "/api/examSession";
@@ -15922,5 +16649,5 @@ var useVirtualizeList = function useVirtualizeList(totalItems, rowHeight, offset
15922
16649
  };
15923
16650
  };
15924
16651
 
15925
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, Login, SignIn as LoginWithPassword, NotFound, PUSHER_CONFIG, QuestionCountSelector, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, api, apiUpload, canAccess as canAccessRoute, diffFromNow, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
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 };
15926
16653
  //# sourceMappingURL=index.modern.js.map