touchstudy-core 0.1.51 → 0.1.53

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.
@@ -1,7 +1,7 @@
1
1
  import { createAction, createReducer, configureStore } from '@reduxjs/toolkit';
2
2
  import moment from 'moment';
3
3
  export { default as moment } from 'moment';
4
- import React__default, { useState, useEffect, useMemo, useCallback, Fragment as Fragment$1, useRef, createElement } from 'react';
4
+ import React__default, { useState, useCallback, useEffect, useMemo, Fragment as Fragment$1, useRef, createElement } from 'react';
5
5
  import { Formik, Form, Field } from 'formik';
6
6
  import { object, string, boolean } from 'yup';
7
7
  import GoogleLogin, { useGoogleLogout } from '@leecheuk/react-google-login';
@@ -42,6 +42,10 @@ import TextField$1 from '@mui/material/TextField';
42
42
  import Paper$1 from '@mui/material/Paper';
43
43
  import Grid$1 from '@mui/material/Grid';
44
44
  import { useLocation, Link } from 'react-router-dom';
45
+ import Card$1 from '@mui/material/Card';
46
+ import CardActions from '@mui/material/CardActions';
47
+ import CardContent from '@mui/material/CardContent';
48
+ import CardMedia from '@mui/material/CardMedia';
45
49
 
46
50
  var setLoading = createAction("common/setLoading");
47
51
  var setAlert = createAction("common/setAlert");
@@ -482,14 +486,16 @@ var useGoogleSignOut = function useGoogleSignOut(props) {
482
486
  };
483
487
  };
484
488
 
489
+ var pushTo = function pushTo(history, data) {
490
+ if (history.push) history.push(data);else history(data);
491
+ };
492
+
485
493
  var ERROR_MESSAGE = "request_login_fail";
486
- var useLogin = function useLogin(onNavigate, homeAcademyUrl, homeUrl, registerUrl) {
494
+ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl) {
487
495
  var dispatch = useDispatch();
488
496
  var _useTranslation = useTranslation(),
489
497
  t = _useTranslation.t;
490
- var _useGoogleSignOut = useGoogleSignOut({
491
- onNavigate: onNavigate
492
- }),
498
+ var _useGoogleSignOut = useGoogleSignOut({}),
493
499
  handleSignOut = _useGoogleSignOut.handleSignOut;
494
500
  var searchParams = new URLSearchParams(window.location.search);
495
501
  var paramDomain = searchParams.get('domain');
@@ -585,9 +591,7 @@ var useLogin = function useLogin(onNavigate, homeAcademyUrl, homeUrl, registerUr
585
591
  !data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
586
592
  !!data.academyDomain && localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
587
593
  dispatch(setUser(_extends({}, data)));
588
- if (redirectUrl) {
589
- onNavigate(redirectUrl);
590
- }
594
+ if (redirectUrl) pushTo(history, redirectUrl);
591
595
  };
592
596
  return {
593
597
  handleLoginGoogle: handleLoginGoogle,
@@ -820,6 +824,8 @@ var LANGUAGES = [{
820
824
  }];
821
825
 
822
826
  var useLanguage = function useLanguage() {
827
+ var searchParams = new URLSearchParams(window.location.search);
828
+ var langParam = searchParams.get("lang");
823
829
  var defaultLanguage = !!localStorage.getItem("language") ? localStorage.getItem("language") : navigator.language || LANGUAGES[DEFAULT_LANGUAGE_INDEX].code;
824
830
  var dispatch = useDispatch();
825
831
  var _useTranslation = useTranslation(),
@@ -843,12 +849,23 @@ var useLanguage = function useLanguage() {
843
849
  i18n.changeLanguage(language.code);
844
850
  moment.locale(language.momentLangCode);
845
851
  localStorage.setItem("language", language.code);
846
- setItemLanguage(language.code);
847
852
  dispatch(setLanguage(language.code));
853
+ searchParams.set("lang", language.code);
848
854
  };
855
+ var handleChangeLangParam = useCallback(function () {
856
+ if (!langParam) return;
857
+ var languageItem = LANGUAGES.find(function (i) {
858
+ return i.code === langParam.toLowerCase();
859
+ });
860
+ if (!languageItem) languageItem = LANGUAGES[DEFAULT_LANGUAGE_INDEX];
861
+ setItemLanguage(languageItem.code);
862
+ }, [searchParams.toString(), language]);
849
863
  useEffect(function () {
850
864
  changeLanguageApp(language);
851
865
  }, [language]);
866
+ useEffect(function () {
867
+ handleChangeLangParam();
868
+ }, [langParam]);
852
869
  var currentLanguage = useMemo(function () {
853
870
  var currentLang = LANGUAGES.find(function (i) {
854
871
  return i.code === language;
@@ -872,7 +889,7 @@ var schema = object({
872
889
  });
873
890
  var BlockLogin = function BlockLogin(_ref) {
874
891
  var defaultInfo = _ref.defaultInfo,
875
- onNavigate = _ref.onNavigate,
892
+ history = _ref.history,
876
893
  _ref$role = _ref.role,
877
894
  role = _ref$role === void 0 ? Role.Student : _ref$role,
878
895
  homeAcademyUrl = _ref.homeAcademyUrl,
@@ -882,7 +899,7 @@ var BlockLogin = function BlockLogin(_ref) {
882
899
  currentLanguage = _useLanguage.currentLanguage;
883
900
  var _useTranslation = useTranslation(),
884
901
  t = _useTranslation.t;
885
- var _useLogin = useLogin(onNavigate, homeAcademyUrl, homeUrl, registerUrl),
902
+ var _useLogin = useLogin(history, homeAcademyUrl, homeUrl, registerUrl),
886
903
  handleLoginGoogle = _useLogin.handleLoginGoogle;
887
904
  var onSuccessGoogle = function onSuccessGoogle(res) {
888
905
  try {
@@ -910,7 +927,7 @@ var BlockLogin = function BlockLogin(_ref) {
910
927
  };
911
928
  var onFailureGoogle = function onFailureGoogle(err) {
912
929
  console.log("error: login google", err);
913
- onNavigate("/login");
930
+ pushTo(history, "/login");
914
931
  };
915
932
  return React__default.createElement(Paper, {
916
933
  elevation: 3,
@@ -970,7 +987,7 @@ var defaultInfo = {
970
987
  captcha: "",
971
988
  rememberMe: false
972
989
  };
973
- var useLogin$1 = function useLogin(onNavigate) {
990
+ var useLogin$1 = function useLogin(history) {
974
991
  var _useState = useState(false),
975
992
  openLogin = _useState[0],
976
993
  setOpenLogin = _useState[1];
@@ -987,14 +1004,14 @@ var useLogin$1 = function useLogin(onNavigate) {
987
1004
  var start = function start() {
988
1005
  gapi.client.init({
989
1006
  clientId: GOOGLE_CLIENT_ID,
990
- scope: 'email'
1007
+ scope: "email"
991
1008
  });
992
1009
  };
993
- !!gapi && gapi.load('client:auth2', start);
1010
+ !!gapi && gapi.load("client:auth2", start);
994
1011
  }, [gapi]);
995
1012
  useEffect(function () {
996
1013
  var token = getAccessToken$1();
997
- if (!!token) onNavigate("/");
1014
+ if (!!token) pushTo(history, "/");
998
1015
  }, []);
999
1016
  return {
1000
1017
  defaultInfo: defaultInfo,
@@ -1007,11 +1024,11 @@ var useLogin$1 = function useLogin(onNavigate) {
1007
1024
  };
1008
1025
  };
1009
1026
 
1010
- var _excluded = ["onNavigate"];
1027
+ var _excluded = ["history"];
1011
1028
  var Login = function Login(_ref) {
1012
- var onNavigate = _ref.onNavigate,
1029
+ var history = _ref.history,
1013
1030
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1014
- var _useLogin = useLogin$1(onNavigate),
1031
+ var _useLogin = useLogin$1(history),
1015
1032
  defaultInfo = _useLogin.defaultInfo;
1016
1033
  return React__default.createElement("div", {
1017
1034
  className: styles["login"] + " font-family-lato"
@@ -1025,7 +1042,7 @@ var Login = function Login(_ref) {
1025
1042
  className: "d-flex justify-content-center h-100 align-items-center"
1026
1043
  }, React__default.createElement(BlockLogin, Object.assign({
1027
1044
  defaultInfo: defaultInfo,
1028
- onNavigate: onNavigate
1045
+ history: history
1029
1046
  }, rest)))));
1030
1047
  };
1031
1048
 
@@ -1351,11 +1368,8 @@ var LayoutContext = function LayoutContext(_ref) {
1351
1368
  var children = _ref.children,
1352
1369
  role = _ref.role,
1353
1370
  _ref$pusherRegisterUr = _ref.pusherRegisterUrls,
1354
- pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr,
1355
- onNavigate = _ref.onNavigate;
1356
- var _useGoogleSignOut = useGoogleSignOut({
1357
- onNavigate: onNavigate
1358
- }),
1371
+ pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr;
1372
+ var _useGoogleSignOut = useGoogleSignOut({}),
1359
1373
  handleSignOut = _useGoogleSignOut.handleSignOut;
1360
1374
  var _useTranslation = useTranslation(),
1361
1375
  t = _useTranslation.t;
@@ -3626,12 +3640,12 @@ var TheLanguageDropdown = function TheLanguageDropdown() {
3626
3640
  })));
3627
3641
  };
3628
3642
 
3629
- var useSwitchAcademy = function useSwitchAcademy(role, navigate, homeAcademyUrl, homeUrl) {
3643
+ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl, homeUrl) {
3630
3644
  if (role === void 0) {
3631
3645
  role = Role.Student;
3632
3646
  }
3633
3647
  var dispatch = useDispatch();
3634
- var _useLogin = useLogin(navigate, homeAcademyUrl, homeUrl),
3648
+ var _useLogin = useLogin(history, homeAcademyUrl, homeUrl),
3635
3649
  handleLoginAccessToken = _useLogin.handleLoginAccessToken;
3636
3650
  var _useState = useState(false),
3637
3651
  dropdownOpen = _useState[0],
@@ -3753,11 +3767,11 @@ var MenuItemCustom = styled(MenuItem)(function () {
3753
3767
  var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
3754
3768
  var _user$roles, _selectedAcademy$name, _selectedAcademy$name2;
3755
3769
  var role = _ref.role,
3756
- navigate = _ref.navigate,
3770
+ history = _ref.history,
3757
3771
  homeAcademyUrl = _ref.homeAcademyUrl,
3758
3772
  homeUrl = _ref.homeUrl,
3759
3773
  hideAcademyName = _ref.hideAcademyName;
3760
- var _useSwitchAcademy = useSwitchAcademy(role, navigate, homeAcademyUrl, homeUrl),
3774
+ var _useSwitchAcademy = useSwitchAcademy(role, history, homeAcademyUrl, homeUrl),
3761
3775
  academyList = _useSwitchAcademy.academyList,
3762
3776
  handleSwitchAcademy = _useSwitchAcademy.handleSwitchAcademy,
3763
3777
  selectedAcademy = _useSwitchAcademy.selectedAcademy;
@@ -8563,60 +8577,79 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
8563
8577
  }));
8564
8578
  };
8565
8579
 
8566
- var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superUrls, homeUrl, homeAcademyUrl) {
8580
+ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superUrls, homeUrl, homeAcademyUrl, isAuthPage) {
8581
+ if (isAuthPage === void 0) {
8582
+ isAuthPage = true;
8583
+ }
8567
8584
  var searchParams = new URLSearchParams(window.location.search);
8568
8585
  var user = useSelector(function (state) {
8569
8586
  var _state$common;
8570
8587
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
8571
8588
  });
8589
+ var language = useSelector(function (state) {
8590
+ var _state$common2;
8591
+ return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
8592
+ });
8572
8593
  var initialAcademySearchParam = function initialAcademySearchParam() {
8573
8594
  var paramAcademyDomain = searchParams.get("domain");
8595
+ var paramLang = searchParams.get("lang");
8574
8596
  var domain = getAcademyDomain();
8575
8597
  var pathname = window.location.pathname.toLowerCase();
8576
- if (!user) return;
8577
- var academyDomain = user.academyDomain;
8598
+ var isUpdateSearchParam = false;
8599
+ if ((!paramLang || paramLang.toLowerCase() !== language) && language) {
8600
+ searchParams.set("lang", language);
8601
+ isUpdateSearchParam = true;
8602
+ }
8603
+ if (!!user !== isAuthPage) return;
8604
+ var academyDomain = user === null || user === void 0 ? void 0 : user.academyDomain;
8578
8605
  if (!academyDomain) {
8579
8606
  if (!superUrls.some(function (i) {
8580
8607
  return pathname.startsWith(i);
8581
8608
  })) {
8582
- pushTo({
8609
+ !paramAcademyDomain && domain && searchParams.set("domain", domain);
8610
+ pushTo(history, {
8583
8611
  pathname: homeUrl,
8584
- search: ""
8612
+ search: searchParams.toString()
8585
8613
  });
8614
+ return;
8586
8615
  }
8587
- if (domain) {
8588
- searchParams.append("domain", domain);
8589
- pushTo({
8590
- pathname: homeUrl,
8591
- search: ""
8592
- });
8616
+ if (paramAcademyDomain) {
8617
+ searchParams["delete"]("domain");
8618
+ pushTo(history, _extends({}, window.location, {
8619
+ search: searchParams.toString()
8620
+ }));
8621
+ return;
8593
8622
  }
8594
8623
  } else {
8595
8624
  if (superUrls.some(function (i) {
8596
8625
  return pathname.startsWith(i);
8597
8626
  })) {
8598
- pushTo({
8627
+ searchParams["delete"]("domain");
8628
+ pushTo(history, {
8599
8629
  pathname: homeAcademyUrl,
8600
- search: ""
8630
+ search: searchParams.toString()
8601
8631
  });
8632
+ return;
8602
8633
  }
8603
8634
  if (paramAcademyDomain && academyDomain.trim().toLocaleLowerCase() != (paramAcademyDomain === null || paramAcademyDomain === void 0 ? void 0 : paramAcademyDomain.trim().toLocaleLowerCase())) {
8604
8635
  logout();
8636
+ return;
8605
8637
  }
8606
- if (!paramAcademyDomain && academyDomain) {
8607
- searchParams.append("domain", academyDomain);
8608
- pushTo(_extends({}, window.location, {
8638
+ if (!paramAcademyDomain) {
8639
+ !paramAcademyDomain && searchParams.set("domain", academyDomain);
8640
+ pushTo(history, _extends({}, window.location, {
8609
8641
  search: searchParams.toString()
8610
8642
  }));
8643
+ return;
8611
8644
  }
8612
8645
  }
8613
- };
8614
- var pushTo = function pushTo(data) {
8615
- if (history.push) history.push(data);else history(data);
8646
+ if (isUpdateSearchParam) pushTo(history, _extends({}, window.location, {
8647
+ search: searchParams.toString()
8648
+ }));
8616
8649
  };
8617
8650
  useEffect(function () {
8618
8651
  initialAcademySearchParam();
8619
- }, [window.location.pathname, user === null || user === void 0 ? void 0 : user.academyDomain]);
8652
+ }, [window.location.pathname, window.location.search, user === null || user === void 0 ? void 0 : user.academyDomain, language]);
8620
8653
  };
8621
8654
 
8622
8655
  var DEFAULT_PAGING_RESPONSE = {
@@ -9922,7 +9955,7 @@ var defaultSeries = function defaultSeries(t) {
9922
9955
  }];
9923
9956
  };
9924
9957
 
9925
- var useExamResult = function useExamResult(searchParam, navigate, examSessionId, studentId, code, handleChangeTab, selectedTab) {
9958
+ var useExamResult = function useExamResult(searchParam, history, examSessionId, studentId, code, handleChangeTab, selectedTab) {
9926
9959
  var _allSeries$dataChartI;
9927
9960
  if (examSessionId === void 0) {
9928
9961
  examSessionId = 0;
@@ -10077,7 +10110,7 @@ var useExamResult = function useExamResult(searchParam, navigate, examSessionId,
10077
10110
  }
10078
10111
  };
10079
10112
  var handleExit = function handleExit() {
10080
- navigate("/student/my-story/live-main");
10113
+ pushTo(history, "/student/my-story/live-main");
10081
10114
  };
10082
10115
  var totalTime = useMemo(function () {
10083
10116
  var _resultData$questions;
@@ -12858,14 +12891,14 @@ var useTab = function useTab() {
12858
12891
 
12859
12892
  var ExamResultV2 = function ExamResultV2(_ref) {
12860
12893
  var searchParams = _ref.searchParams,
12861
- onNavigate = _ref.onNavigate,
12894
+ history = _ref.history,
12862
12895
  examSessionId = _ref.examSessionId,
12863
12896
  studentId = _ref.studentId,
12864
12897
  code = _ref.code;
12865
12898
  var _useTab = useTab(),
12866
12899
  selected = _useTab.selected,
12867
12900
  handleChangeTab = _useTab.handleChangeTab;
12868
- var _useExamResult = useExamResult(searchParams, onNavigate, examSessionId, studentId, code, handleChangeTab, selected),
12901
+ var _useExamResult = useExamResult(searchParams, history, examSessionId, studentId, code, handleChangeTab, selected),
12869
12902
  examTime = _useExamResult.examTime,
12870
12903
  series = _useExamResult.series,
12871
12904
  allSeries = _useExamResult.allSeries,
@@ -13373,7 +13406,7 @@ var signInSuperAdminApi = function signInSuperAdminApi(_ref2) {
13373
13406
  };
13374
13407
 
13375
13408
  var useLogin$2 = function useLogin(_ref) {
13376
- var onNavigate = _ref.onNavigate,
13409
+ var history = _ref.history,
13377
13410
  _ref$role = _ref.role,
13378
13411
  role = _ref$role === void 0 ? Role.Student : _ref$role,
13379
13412
  homeAcademyUrl = _ref.homeAcademyUrl,
@@ -13393,7 +13426,7 @@ var useLogin$2 = function useLogin(_ref) {
13393
13426
  var academyDomain = paramDomain || getAcademyDomain();
13394
13427
  var handleClearAcademyDomain = function handleClearAcademyDomain() {
13395
13428
  localStorage.removeItem(ACADEMY_DOMAIN);
13396
- onNavigate("/login-with-account");
13429
+ pushTo(history, "/login-with-account");
13397
13430
  };
13398
13431
  var handleValidateForm = function handleValidateForm(_ref2) {
13399
13432
  var email = _ref2.email,
@@ -13458,13 +13491,11 @@ var useLogin$2 = function useLogin(_ref) {
13458
13491
  !data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
13459
13492
  !!data.academyDomain && localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
13460
13493
  dispatch(setUser(_extends({}, data)));
13461
- if (redirectUrl) {
13462
- onNavigate(redirectUrl);
13463
- }
13494
+ if (redirectUrl) pushTo(history, redirectUrl);
13464
13495
  };
13465
13496
  useEffect(function () {
13466
13497
  var token = getAccessToken$1();
13467
- if (!!token) onNavigate("/");
13498
+ if (!!token) pushTo(history, "/");
13468
13499
  }, []);
13469
13500
  return {
13470
13501
  handleSubmit: handleSubmit,
@@ -13476,7 +13507,7 @@ var useLogin$2 = function useLogin(_ref) {
13476
13507
  };
13477
13508
 
13478
13509
  function SignIn(_ref) {
13479
- var onNavigate = _ref.onNavigate,
13510
+ var history = _ref.history,
13480
13511
  role = _ref.role,
13481
13512
  homeAcademyUrl = _ref.homeAcademyUrl,
13482
13513
  homeUrl = _ref.homeUrl,
@@ -13485,7 +13516,7 @@ function SignIn(_ref) {
13485
13516
  var _useTranslation = useTranslation(),
13486
13517
  t = _useTranslation.t;
13487
13518
  var _useLoginWithPassword = useLogin$2({
13488
- onNavigate: onNavigate,
13519
+ history: history,
13489
13520
  role: role,
13490
13521
  homeAcademyUrl: homeAcademyUrl,
13491
13522
  homeUrl: homeUrl,
@@ -13590,7 +13621,7 @@ var studentFullLogoEn = function studentFullLogoEn(_ref) {
13590
13621
  fill: "none",
13591
13622
  xmlns: "http://www.w3.org/2000/svg"
13592
13623
  }, React__default.createElement("g", {
13593
- "clip-path": "url(#clip0_3233_11779)"
13624
+ clipPath: "url(#clip0_3233_11779)"
13594
13625
  }, React__default.createElement("path", {
13595
13626
  d: "M9.24216 15.5417C9.24216 16.4045 9.73435 16.87 11.5816 17.5104C16.6013 19.2835 16.972 20.9321 16.972 24.4278V26.0764C16.972 29.5721 13.9684 30.8263 10.4489 30.8263C6.92944 30.8263 4 29.5721 4 26.0764V23.1973H9.29256V25.2165C9.29256 25.9785 9.83516 26.3729 10.5468 26.3729C11.2584 26.3729 11.8039 25.9785 11.8039 25.2165V24.6028C11.8039 21.9698 11.4096 21.7237 7.51948 20.173C4.69085 19.0374 4.07413 17.1902 4.07413 15.7136V13.3505C4.07413 9.85772 6.97985 8.60352 10.4964 8.60352C14.0129 8.60352 16.9216 9.85772 16.9216 13.3535V15.3964H11.7535V14.1896C11.7535 13.4513 11.2376 13.057 10.523 13.057C9.76103 13.057 9.24216 13.3535 9.24216 14.1392V15.5417Z",
13596
13627
  fill: "#2BBA84"
@@ -13652,7 +13683,7 @@ var studentFullLogoKo = function studentFullLogoKo(_ref) {
13652
13683
  fill: "none",
13653
13684
  xmlns: "http://www.w3.org/2000/svg"
13654
13685
  }, React__default.createElement("g", {
13655
- "clip-path": "url(#clip0_3233_7642)"
13686
+ clipPath: "url(#clip0_3233_7642)"
13656
13687
  }, React__default.createElement("path", {
13657
13688
  d: "M0 24.4625H20.5166V30.0272H0V24.4625ZM0.282173 21.434L5.84688 6.177H12.0777L11.4116 7.97175H16.7729C18.8498 7.97175 19.8505 9.0217 19.8505 11.0494V21.4373H13.6952V13.2805H9.48888L6.53919 21.4373H0.282173V21.434Z",
13658
13689
  fill: "#2BBA84"
@@ -13705,7 +13736,7 @@ var teacherFullLogoKo = function teacherFullLogoKo(_ref) {
13705
13736
  fill: "none",
13706
13737
  xmlns: "http://www.w3.org/2000/svg"
13707
13738
  }, React__default.createElement("g", {
13708
- "clip-path": "url(#clip0_3233_7868)"
13739
+ clipPath: "url(#clip0_3233_7868)"
13709
13740
  }, React__default.createElement("path", {
13710
13741
  d: "M0 38.9726H20.5175V44.5391H0V38.9726ZM0.284008 35.9458L5.85056 20.6865H12.0825L11.4171 22.4798H16.7767C18.8541 22.4798 19.8521 23.5307 19.8521 25.5552V35.9418H13.6973V27.7867H9.48991L6.54029 35.9418H0.284008V35.9458Z",
13711
13742
  fill: "#2BBA84"
@@ -13870,32 +13901,32 @@ var singleLogo = function singleLogo(_ref) {
13870
13901
  }, React__default.createElement("defs", null, React__default.createElement("clipPath", {
13871
13902
  id: "1"
13872
13903
  }, React__default.createElement("path", {
13873
- "clip-rule": "evenodd",
13904
+ clipRule: "evenodd",
13874
13905
  d: "M0 0L207 0L207 418L0 418z"
13875
13906
  }))), React__default.createElement("g", {
13876
13907
  transform: "matrix(0.119617224 0 0 0.119617224 0.119617224 -0)"
13877
13908
  }, React__default.createElement("g", {
13878
- "clip-path": "url(#1)"
13909
+ clipPath: "url(#1)"
13879
13910
  }, React__default.createElement("path", {
13880
13911
  d: "M9.66724 418C 136.043 342.286 179.498 275.873 207.032 138.127L207.032 138.127L207.032 344.635C 207.032 385.143 171.107 418 126.791 418L126.791 418L9.66724 418z",
13881
13912
  stroke: "none",
13882
13913
  fill: "#2BBA84",
13883
- "fill-rule": "nonzero"
13914
+ fillRule: "nonzero"
13884
13915
  }), React__default.createElement("path", {
13885
13916
  d: "M101.171 163.206L19.845 83.1111L19.845 188.064L101.171 286.159C 148.167 225.175 177.424 148.413 182.497 80.5714L182.497 80.5714L101.171 163.175L101.171 163.206z",
13886
13917
  stroke: "none",
13887
13918
  fill: "#2BBA84",
13888
- "fill-rule": "nonzero"
13919
+ fillRule: "nonzero"
13889
13920
  }), React__default.createElement("path", {
13890
13921
  d: "M101.171 0L54.1428 68.0317L101.171 112.952L148.167 65.4921L101.171 0z",
13891
13922
  stroke: "none",
13892
13923
  fill: "#2BBA84",
13893
- "fill-rule": "nonzero"
13924
+ fillRule: "nonzero"
13894
13925
  }), React__default.createElement("path", {
13895
13926
  d: "M0 222.762L80.6879 319.587C 80.6879 319.587 65.2458 342.54 0 376.952L0 376.952L0 222.762z",
13896
13927
  stroke: "none",
13897
13928
  fill: "#2BBA84",
13898
- "fill-rule": "nonzero"
13929
+ fillRule: "nonzero"
13899
13930
  }))));
13900
13931
  };
13901
13932
 
@@ -13905,7 +13936,7 @@ var Header = function Header(_ref) {
13905
13936
  homeRoute = _ref.homeRoute,
13906
13937
  headerTabs = _ref.headerTabs,
13907
13938
  role = _ref.role,
13908
- navigate = _ref.navigate,
13939
+ history = _ref.history,
13909
13940
  onSignOut = _ref.onSignOut;
13910
13941
  var _useTranslation = useTranslation(),
13911
13942
  t = _useTranslation.t;
@@ -13991,7 +14022,7 @@ var Header = function Header(_ref) {
13991
14022
  homeAcademyUrl: academyListRoute.path,
13992
14023
  homeUrl: homeRoute.path,
13993
14024
  role: role,
13994
- navigate: navigate,
14025
+ history: history,
13995
14026
  hideAcademyName: !isLargerThanXL && headerTabs.length > 6
13996
14027
  })), React__default.createElement("div", {
13997
14028
  className: "me-2"
@@ -14009,5 +14040,155 @@ var Header = function Header(_ref) {
14009
14040
  }))));
14010
14041
  };
14011
14042
 
14012
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, 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, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, 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$1 as getAccessToken, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useGoogleSignOut, useLanguage, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, utcToLocalTime };
14043
+ var ACADEMY_URL$1 = BASE_URL + "/api/academy";
14044
+ var getAcademyList$1 = function getAcademyList() {
14045
+ return api.get("" + ACADEMY_URL$1);
14046
+ };
14047
+ var switchAcademy$1 = function switchAcademy(academyId) {
14048
+ return api.post(ACADEMY_URL$1 + "/switch-academy?academyId=" + academyId);
14049
+ };
14050
+
14051
+ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, homeUrl, registerUrl) {
14052
+ var dispatch = useDispatch();
14053
+ var _useLogin = useLogin(history, homeAcademyUrl, homeUrl, registerUrl),
14054
+ handleLoginAccessToken = _useLogin.handleLoginAccessToken;
14055
+ var _useState = useState([]),
14056
+ academyList = _useState[0],
14057
+ setAcademyList = _useState[1];
14058
+ var email = useSelector(function (state) {
14059
+ var _state$common, _state$common$user;
14060
+ 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;
14061
+ });
14062
+ var getAcademies = function getAcademies() {
14063
+ try {
14064
+ var _temp2 = function _temp2() {
14065
+ dispatch(setLoading(false));
14066
+ };
14067
+ dispatch(setLoading(true));
14068
+ var _temp = _catch(function () {
14069
+ return Promise.resolve(getAcademyList$1()).then(function (res) {
14070
+ setAcademyList(res.data.items || []);
14071
+ });
14072
+ }, function (error) {
14073
+ var _error$response, _error$response$data;
14074
+ toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : (_error$response$data = _error$response.data) === null || _error$response$data === void 0 ? void 0 : _error$response$data.tile) || "Get user academies failed");
14075
+ });
14076
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
14077
+ } catch (e) {
14078
+ return Promise.reject(e);
14079
+ }
14080
+ };
14081
+ var handleSwitchAcademy = function handleSwitchAcademy(id, domain) {
14082
+ try {
14083
+ var _temp4 = function _temp4() {
14084
+ dispatch(setLoading(false));
14085
+ };
14086
+ dispatch(setLoading(true));
14087
+ var _temp3 = _catch(function () {
14088
+ return Promise.resolve(switchAcademy$1(id)).then(function (res) {
14089
+ var data = res.data;
14090
+ var requestBody = {
14091
+ accessToken: data.accessToken,
14092
+ email: email,
14093
+ academyId: id,
14094
+ role: role
14095
+ };
14096
+ localStorage.setItem(ACADEMY_DOMAIN, domain);
14097
+ return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {});
14098
+ });
14099
+ }, function (error) {
14100
+ var _error$response2, _error$response2$data;
14101
+ toast.error((error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : (_error$response2$data = _error$response2.data) === null || _error$response2$data === void 0 ? void 0 : _error$response2$data.tile) || "Failed");
14102
+ });
14103
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
14104
+ } catch (e) {
14105
+ return Promise.reject(e);
14106
+ }
14107
+ };
14108
+ useEffect(function () {
14109
+ getAcademies();
14110
+ }, []);
14111
+ return {
14112
+ academyList: academyList,
14113
+ handleSwitchAcademy: handleSwitchAcademy
14114
+ };
14115
+ };
14116
+
14117
+ var AcademyCard = function AcademyCard(_ref) {
14118
+ var theme = _ref.theme,
14119
+ academy = _ref.academy,
14120
+ onSwitch = _ref.onSwitch;
14121
+ var _useTranslation = useTranslation(),
14122
+ t = _useTranslation.t;
14123
+ var handleSwitchAcademy = function handleSwitchAcademy() {
14124
+ onSwitch(academy.id, academy.domain);
14125
+ };
14126
+ return createElement(Card$1, null, createElement(CardMedia, {
14127
+ sx: {
14128
+ width: "100%",
14129
+ aspectRatio: 4 / 3
14130
+ },
14131
+ image: academy.image || "/images/default.jpg",
14132
+ title: academy.name
14133
+ }), createElement(CardContent, null, createElement(Typography$1, {
14134
+ variant: "h6",
14135
+ component: "div"
14136
+ }, academy.name)), createElement(CardActions, null, createElement(Button$1, {
14137
+ sx: {
14138
+ bgColor: theme.palette.main_theme.dark
14139
+ },
14140
+ size: "medium",
14141
+ variant: "contained",
14142
+ onClick: handleSwitchAcademy
14143
+ }, t("switch"))));
14144
+ };
14145
+
14146
+ var AcademyList = function AcademyList(_ref) {
14147
+ var theme = _ref.theme,
14148
+ history = _ref.history,
14149
+ role = _ref.role,
14150
+ homeAcademyUrl = _ref.homeAcademyUrl,
14151
+ homeUrl = _ref.homeUrl,
14152
+ registerUrl = _ref.registerUrl;
14153
+ var _useTranslation = useTranslation(),
14154
+ t = _useTranslation.t;
14155
+ useAutoAcademyDomain(function () {}, history, [], "", window.location.pathname, true);
14156
+ var _useAcademyList = useAcademyList(history, role, homeAcademyUrl, homeUrl, registerUrl),
14157
+ academyList = _useAcademyList.academyList,
14158
+ handleSwitchAcademy = _useAcademyList.handleSwitchAcademy;
14159
+ return React__default.createElement("div", {
14160
+ className: "py-3 px-4"
14161
+ }, React__default.createElement(Grid$1, {
14162
+ container: true,
14163
+ spacing: 3
14164
+ }, React__default.createElement(Grid$1, {
14165
+ item: true,
14166
+ xs: 12
14167
+ }, React__default.createElement(Typography$1, {
14168
+ fontSize: 24,
14169
+ fontWeight: 600
14170
+ }, t("academy_list"))), React__default.createElement(Grid$1, {
14171
+ item: true,
14172
+ xs: 12
14173
+ }, React__default.createElement(Grid$1, {
14174
+ container: true,
14175
+ spacing: 2
14176
+ }, academyList.map(function (i) {
14177
+ return React__default.createElement(Grid$1, {
14178
+ item: true,
14179
+ xs: 6,
14180
+ lg: 3,
14181
+ key: i.id
14182
+ }, React__default.createElement(AcademyCard, {
14183
+ theme: theme,
14184
+ academy: i,
14185
+ onSwitch: handleSwitchAcademy
14186
+ }));
14187
+ }), !academyList.length && React__default.createElement(Grid$1, {
14188
+ item: true,
14189
+ xs: 3
14190
+ }, React__default.createElement("span", null, t("no_academy_available"), "."))))));
14191
+ };
14192
+
14193
+ 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, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, 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$1 as getAccessToken, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useGoogleSignOut, useLanguage, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, utcToLocalTime };
14013
14194
  //# sourceMappingURL=index.modern.js.map