touchstudy-core 0.1.60 → 0.1.62

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.
package/dist/index.js CHANGED
@@ -12,9 +12,9 @@ var reactRedux = require('react-redux');
12
12
  var axios = _interopDefault(require('axios'));
13
13
  var reactI18next = require('react-i18next');
14
14
  var material = require('@mui/material');
15
+ var gapiScript = require('gapi-script');
15
16
  require('moment/locale/ko.js');
16
17
  require('moment/locale/en-au.js');
17
- var gapiScript = require('gapi-script');
18
18
  var Pusher = _interopDefault(require('pusher-js'));
19
19
  var io5 = require('react-icons/io5');
20
20
  var i18n = _interopDefault(require('i18next'));
@@ -72,6 +72,7 @@ var PUSHER_CONFIG = {
72
72
  var ACCESS_TOKEN = "ACCESS_TOKEN";
73
73
  var ACADEMY_DOMAIN = "ACADEMY_DOMAIN";
74
74
  var REDIRECT_URL = "REDIRECT_URL";
75
+ var LANGUAGE = "LANGUAGE";
75
76
  var AcademyHeaders = "Academy-Headers";
76
77
  var LanguageHeaders = "Accept-Language";
77
78
  var DefaultErrorMessage = "an_unexpected_error_has_occurred";
@@ -79,27 +80,6 @@ var DATE_MIN_VALUE = "0001-01-01T00:00:00+00:00";
79
80
  var DATE_TIME_MIN_VALUE = "0001-01-01T00:00:00";
80
81
  var EXAM_CHANNEL = "presence-exam-channel";
81
82
  var EXAM_STUDENT_CHANNEL = "EXAM-CHANNEL-{examCode}-STUDENT-{studentId}";
82
- var getAccessToken = function getAccessToken() {
83
- try {
84
- return localStorage.getItem(ACCESS_TOKEN);
85
- } catch (err) {
86
- return null;
87
- }
88
- };
89
- var getAcademyDomain = function getAcademyDomain() {
90
- try {
91
- return localStorage.getItem(ACADEMY_DOMAIN);
92
- } catch (err) {
93
- return null;
94
- }
95
- };
96
- var getRedirectUrl = function getRedirectUrl() {
97
- try {
98
- return localStorage.getItem(REDIRECT_URL);
99
- } catch (err) {
100
- return undefined;
101
- }
102
- };
103
83
  var encodeParams = function encodeParams(params) {
104
84
  return Object.keys(params).filter(function (key) {
105
85
  return params[key] || params[key] === 0 || params[key] === false;
@@ -382,6 +362,22 @@ function _finally(body, finalizer) {
382
362
  return finalizer();
383
363
  }
384
364
 
365
+ var getAcademyDomain = function getAcademyDomain() {
366
+ try {
367
+ return localStorage.getItem(ACADEMY_DOMAIN);
368
+ } catch (err) {
369
+ return null;
370
+ }
371
+ };
372
+
373
+ var getAccessToken = (function () {
374
+ try {
375
+ return localStorage.getItem(ACCESS_TOKEN);
376
+ } catch (err) {
377
+ return null;
378
+ }
379
+ });
380
+
385
381
  var api = axios.create({
386
382
  baseURL: BASE_URL,
387
383
  timeout: 0,
@@ -508,14 +504,23 @@ var pushTo = function pushTo(history, data) {
508
504
  };
509
505
 
510
506
  var getErrorMessage = function getErrorMessage(t, error, defaultErrorMessage) {
511
- var _error$response, _error$response$data, _error$response2, _error$response2$data;
507
+ var _error$response, _error$response$data, _error$response2, _error$response3, _error$response3$data;
512
508
  var errorMessage = 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.title;
513
- if (typeof errorMessage === "string") return errorMessage;
514
- errorMessage = (error === null || error === void 0 ? void 0 : error.message) || (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.message);
509
+ if ((error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.status) === 500) return defaultErrorMessage || t(DefaultErrorMessage);
510
+ if (typeof errorMessage === "string") return decodeURIComponent(errorMessage);
511
+ errorMessage = (error === null || error === void 0 ? void 0 : error.message) || (error === null || error === void 0 ? void 0 : (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : (_error$response3$data = _error$response3.data) === null || _error$response3$data === void 0 ? void 0 : _error$response3$data.message);
515
512
  if (typeof errorMessage === "string") return errorMessage;
516
513
  return defaultErrorMessage || t(DefaultErrorMessage);
517
514
  };
518
515
 
516
+ var getRedirectUrl = function getRedirectUrl() {
517
+ try {
518
+ return localStorage.getItem(REDIRECT_URL);
519
+ } catch (err) {
520
+ return undefined;
521
+ }
522
+ };
523
+
519
524
  var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl) {
520
525
  var dispatch = reactRedux.useDispatch();
521
526
  var _useTranslation = reactI18next.useTranslation(),
@@ -598,7 +603,9 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
598
603
  var needToRegister = isStudent && isFirstLogin && isAcademy;
599
604
  var redirectUrl = getRedirectUrl();
600
605
  if (!redirectUrl) redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
601
- redirectLoginUser(user, token, redirectUrl);
606
+ redirectLoginUser(_extends({}, user, {
607
+ isFirstLogin: isFirstLogin
608
+ }), token, redirectUrl);
602
609
  });
603
610
  }, function (error) {
604
611
  alert(getErrorMessage(t, error));
@@ -830,84 +837,6 @@ var SloganFullLogoEn = function SloganFullLogoEn(_ref) {
830
837
  }))));
831
838
  };
832
839
 
833
- var DEFAULT_LANGUAGE_INDEX = 0;
834
- var LANGUAGES = [{
835
- code: "ko",
836
- fullName: "Korean",
837
- shortName: "Korean",
838
- nativeName: "Korean",
839
- name: "Korean",
840
- image: "/images/korea.png",
841
- momentLangCode: "ko"
842
- }, {
843
- code: "en",
844
- fullName: "English",
845
- shortName: "English",
846
- nativeName: "English",
847
- name: "English",
848
- image: "/images/usa.png",
849
- momentLangCode: "en-au"
850
- }];
851
-
852
- var useLanguage = function useLanguage() {
853
- var searchParams = new URLSearchParams(window.location.search);
854
- var langParam = searchParams.get("lang");
855
- var defaultLanguage = !!localStorage.getItem("language") ? localStorage.getItem("language") : navigator.language || LANGUAGES[DEFAULT_LANGUAGE_INDEX].code;
856
- var dispatch = reactRedux.useDispatch();
857
- var _useTranslation = reactI18next.useTranslation(),
858
- i18n = _useTranslation.i18n;
859
- var _useState = React.useState(false),
860
- dropdownOpen = _useState[0],
861
- setDropdownOpen = _useState[1];
862
- var _useState2 = React.useState(defaultLanguage),
863
- language = _useState2[0],
864
- setItemLanguage = _useState2[1];
865
- var toggle = function toggle() {
866
- return setDropdownOpen(function (prevState) {
867
- return !prevState;
868
- });
869
- };
870
- var changeLanguageApp = function changeLanguageApp(lang) {
871
- var language = LANGUAGES.find(function (i) {
872
- return i.code === lang;
873
- });
874
- if (!language) language = LANGUAGES[DEFAULT_LANGUAGE_INDEX];
875
- i18n.changeLanguage(language.code);
876
- moment.locale(language.momentLangCode);
877
- localStorage.setItem("language", language.code);
878
- dispatch(setLanguage(language.code));
879
- searchParams.set("lang", language.code);
880
- };
881
- var handleChangeLangParam = React.useCallback(function () {
882
- if (!langParam) return;
883
- var languageItem = LANGUAGES.find(function (i) {
884
- return i.code === langParam.toLowerCase();
885
- });
886
- if (!languageItem) languageItem = LANGUAGES[DEFAULT_LANGUAGE_INDEX];
887
- setItemLanguage(languageItem.code);
888
- }, [searchParams.toString(), language]);
889
- React.useEffect(function () {
890
- changeLanguageApp(language);
891
- }, [language]);
892
- React.useEffect(function () {
893
- handleChangeLangParam();
894
- }, [langParam]);
895
- var currentLanguage = React.useMemo(function () {
896
- var currentLang = LANGUAGES.find(function (i) {
897
- return i.code === language;
898
- });
899
- if (!currentLang) return null;
900
- return currentLang;
901
- }, [language]);
902
- return {
903
- language: language,
904
- dropdownOpen: dropdownOpen,
905
- currentLanguage: currentLanguage,
906
- toggle: toggle,
907
- setItemLanguage: setItemLanguage
908
- };
909
- };
910
-
911
840
  var schema = yup.object({
912
841
  email: yup.string().email("Email is invalid").required("Email is required"),
913
842
  password: yup.string().required("Password is required"),
@@ -921,8 +850,10 @@ var BlockLogin = function BlockLogin(_ref) {
921
850
  homeAcademyUrl = _ref.homeAcademyUrl,
922
851
  homeUrl = _ref.homeUrl,
923
852
  registerUrl = _ref.registerUrl;
924
- var _useLanguage = useLanguage(),
925
- currentLanguage = _useLanguage.currentLanguage;
853
+ var language = reactRedux.useSelector(function (state) {
854
+ var _state$common;
855
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
856
+ });
926
857
  var _useTranslation = reactI18next.useTranslation(),
927
858
  t = _useTranslation.t;
928
859
  var _useLogin = useLogin(history, homeAcademyUrl, homeUrl, registerUrl),
@@ -981,7 +912,7 @@ var BlockLogin = function BlockLogin(_ref) {
981
912
  py: 2,
982
913
  justifyContent: "center",
983
914
  alignItems: "center"
984
- }, (currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.code) === "ko" ? React__default.createElement(SloganFullLogoKo, {
915
+ }, language !== Language.en ? React__default.createElement(SloganFullLogoKo, {
985
916
  width: "300px"
986
917
  }) : React__default.createElement(SloganFullLogoEn, {
987
918
  width: "300px"
@@ -999,14 +930,6 @@ var BlockLogin = function BlockLogin(_ref) {
999
930
  })));
1000
931
  };
1001
932
 
1002
- var getAccessToken$1 = (function () {
1003
- try {
1004
- return localStorage.getItem(ACCESS_TOKEN);
1005
- } catch (err) {
1006
- return null;
1007
- }
1008
- });
1009
-
1010
933
  var defaultInfo = {
1011
934
  email: "",
1012
935
  password: "",
@@ -1036,7 +959,7 @@ var useLogin$1 = function useLogin(history) {
1036
959
  !!gapiScript.gapi && gapiScript.gapi.load("client:auth2", start);
1037
960
  }, [gapiScript.gapi]);
1038
961
  React.useEffect(function () {
1039
- var token = getAccessToken$1();
962
+ var token = getAccessToken();
1040
963
  if (!!token) pushTo(history, "/");
1041
964
  }, []);
1042
965
  return {
@@ -1050,12 +973,106 @@ var useLogin$1 = function useLogin(history) {
1050
973
  };
1051
974
  };
1052
975
 
976
+ var LANGUAGES = [{
977
+ code: "ko",
978
+ fullName: "Korean",
979
+ shortName: "Korean",
980
+ nativeName: "Korean",
981
+ name: "Korean",
982
+ image: "/images/korea.png",
983
+ momentLangCode: "ko"
984
+ }, {
985
+ code: "en",
986
+ fullName: "English",
987
+ shortName: "English",
988
+ nativeName: "English",
989
+ name: "English",
990
+ image: "/images/usa.png",
991
+ momentLangCode: "en-au"
992
+ }];
993
+ var DEFAULT_LANGUAGE = LANGUAGES[0];
994
+
995
+ var getLanguage = (function () {
996
+ try {
997
+ return localStorage.getItem(LANGUAGE);
998
+ } catch (err) {
999
+ return null;
1000
+ }
1001
+ });
1002
+
1003
+ var useLanguage = function useLanguage(history) {
1004
+ var pathname = window.location.pathname;
1005
+ var search = window.location.search;
1006
+ var dispatch = reactRedux.useDispatch();
1007
+ var _useTranslation = reactI18next.useTranslation(),
1008
+ i18n = _useTranslation.i18n;
1009
+ var _useState = React.useState(false),
1010
+ dropdownOpen = _useState[0],
1011
+ setDropdownOpen = _useState[1];
1012
+ var _useState2 = React.useState(),
1013
+ currentLanguage = _useState2[0],
1014
+ setCurrentLanguage = _useState2[1];
1015
+ var toggle = function toggle() {
1016
+ return setDropdownOpen(function (prevState) {
1017
+ return !prevState;
1018
+ });
1019
+ };
1020
+ var changeLanguageApp = function changeLanguageApp(languageItem) {
1021
+ if (!languageItem) {
1022
+ var storedLanguage = getLanguage();
1023
+ var browserLanguage = navigator.language;
1024
+ var defaultLanguageCode = storedLanguage || browserLanguage;
1025
+ languageItem = LANGUAGES.find(function (i) {
1026
+ return i.code === defaultLanguageCode;
1027
+ }) || currentLanguage || DEFAULT_LANGUAGE;
1028
+ }
1029
+ setCurrentLanguage(languageItem);
1030
+ var searchParams = new URLSearchParams(search);
1031
+ i18n.changeLanguage(languageItem.code);
1032
+ moment.locale(languageItem.momentLangCode);
1033
+ localStorage.setItem(LANGUAGE, languageItem.code);
1034
+ dispatch(setLanguage(languageItem.code));
1035
+ searchParams.set("lang", languageItem.code);
1036
+ pushTo(history, _extends({}, window.location, {
1037
+ search: searchParams.toString()
1038
+ }));
1039
+ };
1040
+ var handleChangeLanguageParam = function handleChangeLanguageParam() {
1041
+ var searchParams = new URLSearchParams(search);
1042
+ var langParam = searchParams.get("lang");
1043
+ var languageItem = undefined;
1044
+ if (langParam) {
1045
+ var languageParamItem = LANGUAGES.find(function (i) {
1046
+ return i.code === langParam;
1047
+ });
1048
+ languageItem = languageParamItem || languageItem;
1049
+ }
1050
+ changeLanguageApp(languageItem);
1051
+ };
1052
+ var handleChangeItemLanguage = function handleChangeItemLanguage(lang) {
1053
+ var languageItem = LANGUAGES.find(function (i) {
1054
+ return i.code === lang;
1055
+ });
1056
+ changeLanguageApp(languageItem);
1057
+ };
1058
+ React.useEffect(function () {
1059
+ handleChangeLanguageParam();
1060
+ }, [pathname, search]);
1061
+ return {
1062
+ dropdownOpen: dropdownOpen,
1063
+ currentLanguage: currentLanguage,
1064
+ toggle: toggle,
1065
+ handleChangeItemLanguage: handleChangeItemLanguage
1066
+ };
1067
+ };
1068
+
1053
1069
  var _excluded = ["history"];
1054
1070
  var Login = function Login(_ref) {
1055
1071
  var history = _ref.history,
1056
1072
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
1057
1073
  var _useLogin = useLogin$1(history),
1058
1074
  defaultInfo = _useLogin.defaultInfo;
1075
+ useLanguage(history);
1059
1076
  return React__default.createElement("div", {
1060
1077
  className: styles["login"] + " font-family-lato"
1061
1078
  }, React__default.createElement(material.Grid, {
@@ -1318,13 +1335,15 @@ var store = toolkit.configureStore({
1318
1335
  }
1319
1336
  });
1320
1337
 
1321
- var TITLE = "Not found";
1322
- var NotFound = function NotFound() {
1338
+ var TITLE = "not_found";
1339
+ var NotFound = function NotFound(_ref) {
1340
+ var history = _ref.history;
1323
1341
  var _useTranslation = reactI18next.useTranslation(),
1324
1342
  t = _useTranslation.t;
1343
+ useLanguage(history);
1325
1344
  React.useEffect(function () {
1326
- document.title = TITLE;
1327
- });
1345
+ document.title = t(TITLE);
1346
+ }, [t]);
1328
1347
  return React__default.createElement("div", {
1329
1348
  className: "not-found d-flex justify-content-center"
1330
1349
  }, React__default.createElement("div", {
@@ -1390,12 +1409,8 @@ var switchAcademy = function switchAcademy(academyId) {
1390
1409
  return api.post(ACADEMY_URL + "/switch-academy?academyId=" + academyId);
1391
1410
  };
1392
1411
 
1393
- var LayoutContext = function LayoutContext(_ref) {
1412
+ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1394
1413
  var _currentPusher$connec2;
1395
- var children = _ref.children,
1396
- role = _ref.role,
1397
- _ref$pusherRegisterUr = _ref.pusherRegisterUrls,
1398
- pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr;
1399
1414
  var _useGoogleSignOut = useGoogleSignOut({}),
1400
1415
  handleSignOut = _useGoogleSignOut.handleSignOut;
1401
1416
  var _useTranslation = reactI18next.useTranslation(),
@@ -1446,7 +1461,10 @@ var LayoutContext = function LayoutContext(_ref) {
1446
1461
  var checkRoleUser = React.useCallback(function () {
1447
1462
  if (!user) return;
1448
1463
  if (!roles.includes(role) && !!academyDomain) {
1449
- alert(user.email + " not allow to register " + role);
1464
+ alert(t("user_not_allow_to_register_role", {
1465
+ user: user.email,
1466
+ role: role
1467
+ }));
1450
1468
  resetAuth();
1451
1469
  }
1452
1470
  }, [role, JSON.stringify(user)]);
@@ -1481,9 +1499,10 @@ var LayoutContext = function LayoutContext(_ref) {
1481
1499
  }
1482
1500
  };
1483
1501
  var registerPusher = React.useCallback(function () {
1502
+ if (!academyDomain) return;
1484
1503
  if (pusherRegisterUrls.includes(pathname.toLocaleLowerCase())) {
1485
1504
  var _currentPusher$connec;
1486
- if (academyDomain && academyDomain !== (concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain) && isReadyRegisterPusher) {
1505
+ if (academyDomain !== (concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain) && isReadyRegisterPusher) {
1487
1506
  var _headers;
1488
1507
  if (currentPusher) {
1489
1508
  currentPusher.disconnect();
@@ -1539,6 +1558,14 @@ var LayoutContext = function LayoutContext(_ref) {
1539
1558
  }
1540
1559
  };
1541
1560
  }, [registerPusher]);
1561
+ };
1562
+
1563
+ var LayoutContext = function LayoutContext(_ref) {
1564
+ var children = _ref.children,
1565
+ role = _ref.role,
1566
+ _ref$pusherRegisterUr = _ref.pusherRegisterUrls,
1567
+ pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr;
1568
+ useLayoutContext(role, pusherRegisterUrls);
1542
1569
  return React__default.createElement(React.Fragment, null, children);
1543
1570
  };
1544
1571
 
@@ -1558,21 +1585,18 @@ var ConfirmDialog = function ConfirmDialog(_ref) {
1558
1585
  setConfirmTextValue = _useState[1];
1559
1586
  var _useTranslation = reactI18next.useTranslation(),
1560
1587
  t = _useTranslation.t;
1561
- var _useLanguage = useLanguage(),
1562
- currentLanguage = _useLanguage.currentLanguage;
1563
1588
  var handleConfirm = function handleConfirm() {
1564
1589
  onConfirm();
1565
1590
  };
1566
1591
  var handleChangeConfirmText = function handleChangeConfirmText(e) {
1567
1592
  setConfirmTextValue(e.target.value);
1568
1593
  };
1569
- var handlePaste = function handlePaste(e) {
1570
- e.preventDefault();
1571
- };
1594
+ var handlePaste = function handlePaste(_) {};
1572
1595
  React.useEffect(function () {
1573
1596
  !open && setConfirmTextValue(undefined);
1574
1597
  }, [open]);
1575
1598
  var isValid = !!confirmText && !!confirmTextValue && confirmTextValue.trim() === confirmText.trim();
1599
+ var isDisableDelete = !!confirmText && (confirmTextValue === null || confirmTextValue === void 0 ? void 0 : confirmTextValue.trim()) !== confirmText.trim();
1576
1600
  return React__default.createElement(material.Dialog, {
1577
1601
  open: open,
1578
1602
  onClose: toggle,
@@ -1597,9 +1621,15 @@ var ConfirmDialog = function ConfirmDialog(_ref) {
1597
1621
  }
1598
1622
  }, React__default.createElement(io5.IoClose, null))), React__default.createElement(material.DialogContent, {
1599
1623
  className: "pt-2"
1600
- }, React__default.createElement("p", null, React__default.createElement("strong", null, text)), !!confirmText && React__default.createElement("div", {
1624
+ }, React__default.createElement("p", {
1625
+ className: "mb-1"
1626
+ }, React__default.createElement("strong", null, text)), !!confirmText && React__default.createElement("div", {
1601
1627
  className: "w-100"
1602
- }, (currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.code) === 'en' ? React__default.createElement("p", null, "Enter ", React__default.createElement("strong", null, confirmText), " to confirm delete") : React__default.createElement("p", null, "\uC785\uB825\uD558\uB2E4 ", React__default.createElement("strong", null, confirmText), " \uC0AD\uC81C\uB97C \uD655\uC778\uD558\uB824\uBA74"), React__default.createElement(material.TextField, {
1628
+ }, React__default.createElement("p", {
1629
+ className: "mb-3"
1630
+ }, t("enter_text_to_confirm_delete", {
1631
+ text: confirmText
1632
+ })), React__default.createElement(material.TextField, {
1603
1633
  className: "w-100",
1604
1634
  sx: {
1605
1635
  "& input": {
@@ -1623,7 +1653,7 @@ var ConfirmDialog = function ConfirmDialog(_ref) {
1623
1653
  variant: "contained",
1624
1654
  color: isDelete ? "error" : "primary",
1625
1655
  className: "px-3",
1626
- disabled: !!confirmText && (confirmTextValue === null || confirmTextValue === void 0 ? void 0 : confirmTextValue.trim()) !== confirmText.trim(),
1656
+ disabled: isDisableDelete,
1627
1657
  onClick: handleConfirm
1628
1658
  }, okText || t('yes'))));
1629
1659
  };
@@ -1848,6 +1878,8 @@ var here = "여기";
1848
1878
  var do_you_want_to_complete_the_exam = "시험을 완료처리 하시겠습니까?";
1849
1879
  var are_you_sure_you_want_to_delete_the_exam = "시험을 삭제하시겠습니까?";
1850
1880
  var are_you_sure_you_want_to_delete_the_textbook = "교과서를 삭제하시겠습니까?";
1881
+ var are_you_sure_you_want_to_delete_the_user = "사용자 {{user}}을(를) 삭제하시겠습니까?";
1882
+ var are_you_sure_you_want_to_delete_the_article = "정말로 기사를 삭제하시겠습니까: {{article}}?";
1851
1883
  var yes = "예";
1852
1884
  var no = "아니요";
1853
1885
  var cancel = "취소";
@@ -1874,13 +1906,18 @@ var number_problem = "{{number}}문제";
1874
1906
  var problems = "문제";
1875
1907
  var problem_solving_time = "문제풀이 시간";
1876
1908
  var minutes = "분";
1877
- var correct_rate = "정확한 비율";
1909
+ var correct_rate = "정답률";
1878
1910
  var title = "제목";
1879
1911
  var duration = "시험 시간";
1880
1912
  var answer_count = "답변 수";
1881
1913
  var question_count = "문제 갯수";
1914
+ var multi_choice = "여러 개임";
1882
1915
  var category = "문항 카테고리";
1883
1916
  var _category = "카테고리";
1917
+ var score = "점수";
1918
+ var enter_score = "점수 입력";
1919
+ var exam_title_required = "시험 제목은 필수 항목입니다";
1920
+ var question_category_required = "질문 카테고리는 필수 항목입니다";
1884
1921
  var save_and_exit = "저장 및 종료";
1885
1922
  var update_exam = "시험 업데이트";
1886
1923
  var create_exam = "새 시험 만들기";
@@ -1905,12 +1942,16 @@ var end_date = "종료일";
1905
1942
  var weekly_day = "주간";
1906
1943
  var weekly_days = "주간";
1907
1944
  var enter_class_name = "수업 이름을 입력하세요";
1908
- var name = "이름";
1945
+ var class_required = "수업 이름은 필수 항목입니다";
1909
1946
  var total_teachers = "총 교사 수";
1947
+ var start_date_required = "시작일은 필수 항목입니다";
1948
+ var end_date_required = "종료일은 필수 항목입니다";
1949
+ var name = "이름";
1910
1950
  var full_name = "이름";
1911
1951
  var email = "이메일";
1952
+ var is_paid = "지급됨";
1953
+ var payment_time = "결제 시간";
1912
1954
  var payments = "지불";
1913
- var view_payments = "결제 보기";
1914
1955
  var sunday = "일요일";
1915
1956
  var monday = "월요일";
1916
1957
  var tuesday = "화요일";
@@ -1919,7 +1960,9 @@ var thursday = "목요일";
1919
1960
  var friday = "금요일";
1920
1961
  var saturday = "토요일";
1921
1962
  var total_lessons = "총 수업";
1963
+ var is_cancelled = "취소되었습니다";
1922
1964
  var weekly_days_required = "평일 필수";
1965
+ var main_teacher_required = "주 교사가 필요합니다";
1923
1966
  var main_teacher = "주 교사";
1924
1967
  var the_first = "첫번째";
1925
1968
  var the_second = "두번째";
@@ -2185,7 +2228,7 @@ var password = "비밀번호";
2185
2228
  var email_address = "이메일 주소";
2186
2229
  var please_enter_your_question = "질문할 내용을 입력해주세요.";
2187
2230
  var test_selection = "테스트 선택";
2188
- var half_selection = "절반 선택";
2231
+ var half_selection = " 선택";
2189
2232
  var choose_a_problem = "문제를 선택하세요";
2190
2233
  var question_content = "질문 내용";
2191
2234
  var questions_to_ask = "질문할 문제";
@@ -2253,7 +2296,7 @@ var subject_name = "주체 이름";
2253
2296
  var are_you_sure_to_delete_subject = "제목을 삭제하시겠습니까:";
2254
2297
  var drop_a_file_here_or_click_to_browse = "여기에 파일을 놓거나 클릭하여 찾아보세요.";
2255
2298
  var delete_users_csv = "사용자 CSV 삭제";
2256
- var are_you_sure_to_delete_user = "사용자를 삭제하시겠습니까:";
2299
+ var are_you_sure_to_delete_users = "사용자를 삭제하시겠습니까?";
2257
2300
  var enter_phone_number = "전화번호를 입력하세요";
2258
2301
  var enter_school_name = "학교 이름을 입력하세요";
2259
2302
  var enter_grade = "성적 입력";
@@ -2268,6 +2311,7 @@ var export_csv = "CSV 내보내기";
2268
2311
  var select_type = "유형 선택";
2269
2312
  var no_message = "메시지 없음";
2270
2313
  var this_is_the_guidance_text = "안내 텍스트입니다.";
2314
+ var the_page_you_are_looking_for_was_not_found = "찾으시는 페이지를 찾을 수 없습니다.";
2271
2315
  var oops = "이런! 당신이졌다.";
2272
2316
  var please_enter = "들어 오세요...";
2273
2317
  var hint = "힌트";
@@ -2320,6 +2364,8 @@ var teacher = "선생님";
2320
2364
  var role = "역할";
2321
2365
  var total_uses = "총 사용량";
2322
2366
  var create_question = "질문 만들기";
2367
+ var parent_question = "학부모 질문";
2368
+ var edit_question = "질문 수정";
2323
2369
  var articles = "조항";
2324
2370
  var add_lesson = "레슨 추가";
2325
2371
  var date = "날짜";
@@ -2327,6 +2373,96 @@ var the_code_has_been_copied_to_your_clipboard = "코드가 클립보드에 복
2327
2373
  var an_unexpected_error_has_occurred = "예상치 못한 오류가 발생했습니다";
2328
2374
  var select_roles = "역할 선택";
2329
2375
  var no_academy_selected = "선택한 아카데미 없음";
2376
+ var delete_data_successfully = "데이터를 성공적으로 삭제했습니다.";
2377
+ var update_academy_successfully = "아카데미를 성공적으로 업데이트했습니다";
2378
+ var create_academy_successfully = "아카데미를 성공적으로 만들었습니다";
2379
+ var update_article_successfully = "기사를 업데이트했습니다.";
2380
+ var create_article_successfully = "기사를 성공적으로 작성했습니다.";
2381
+ var update_category_successfully = "카테고리를 업데이트했습니다.";
2382
+ var create_category_successfully = "카테고리가 성공적으로 생성되었습니다.";
2383
+ var please_fill_in_all_fields_for_this = "이번 {{day}}에 대한 모든 필드를 작성해 주세요.";
2384
+ var duplicate_weekly_day = "주간 일이 중복됩니다.";
2385
+ var remove_lesson_failed = "강의 삭제 실패";
2386
+ var update_lesson_successfully = "강의를 성공적으로 업데이트했습니다.";
2387
+ var create_lesson_successfully = "수업을 성공적으로 만들었습니다.";
2388
+ var update_class_successfully = "수업을 업데이트했습니다.";
2389
+ var create_class_successfully = "수업을 성공적으로 만들었습니다";
2390
+ var start_times_and_end_times_are_required = "시작 시간과 종료 시간은 필수 항목입니다.";
2391
+ var start_times_must_be_less_than_end_time = "시작 시간은 종료 시간보다 이전이어야 합니다.";
2392
+ var remove_student_successfully = "학생을 성공적으로 제거했습니다.";
2393
+ var remove_teacher_successfully = "교사를 삭제했습니다.";
2394
+ var update_notification_successfully = "업데이트 알림이 성공적으로 완료되었습니다.";
2395
+ var create_notification_successfully = "알림이 성공적으로 생성되었습니다.";
2396
+ var please_select_category = "카테고리를 선택해주세요";
2397
+ var update_social_successfully = "소셜 업데이트를 성공적으로 완료했습니다.";
2398
+ var import_csv_successfully = "CSV를 성공적으로 가져왔습니다.";
2399
+ var download_successfully = "성공적으로 다운로드";
2400
+ var file_type_not_valid = "파일 형식이 잘못되었습니다! csv 파일을 업로드해주세요.";
2401
+ var upload_image_successfully = "이미지를 성공적으로 업로드했습니다.";
2402
+ var category_is_required = "카테고리는 필수 항목입니다.";
2403
+ var textbook_name_is_required = "교과서 이름이 필요합니다";
2404
+ var textbook_subject_is_required = "교과서 과목은 필수입니다";
2405
+ var update_the_textbook_successfully = "교과서를 성공적으로 업데이트했습니다.";
2406
+ var create_the_textbook_successfully = "교과서를 성공적으로 만들었습니다.";
2407
+ var finish_exam_successful = "시험을 성공적으로 마쳤습니다";
2408
+ var you_has_been_kicked_out = "당신은 쫓겨났습니다";
2409
+ var the_teacher_has_closed_or_deleted_the_exam = "선생님이 시험을 종료했거나 삭제했습니다. 나중에 다시 시도해 주세요.";
2410
+ var check_in_lesson_successfully = "수업 체크인 성공";
2411
+ var update_attendance_status_successfully = "출석 상태를 성공적으로 업데이트했습니다.";
2412
+ var save_exam_successfully = "시험을 성공적으로 저장했습니다.";
2413
+ var kick_out_student_successful = "학생 퇴출 성공!";
2414
+ var please_select_an_exam_subject = "시험과목을 선택해주세요";
2415
+ var please_enter_exam_title = "시험 제목을 입력해주세요";
2416
+ var exam_required_at_least_one_question = "시험에는 하나 이상의 질문이 필요합니다.";
2417
+ var create_exam_failed = "시험 생성 실패";
2418
+ var please_select_category_for_article = "기사 {{article}}의 카테고리를 선택하세요.";
2419
+ var placeholder_student_selector = "검색하려면 2자 이상 입력하세요.";
2420
+ var error_uploading_file = "파일을 업로드하는 중 오류가 발생했습니다.";
2421
+ var remove_lesson_successfully = "강의를 성공적으로 삭제했습니다.";
2422
+ var user_not_allow_to_register_role = "{{user}}이(가) {{role}} 등록을 허용하지 않습니다.";
2423
+ var are_you_sure_to_delete_article_from_chapter = "{{chapterName}} 장에서 기사 {{articleNumber}}을(를) 삭제하시겠습니까?";
2424
+ var are_you_sure_to_delete_subchapter_from_chapter = "{{chapter}} 장에서 {{subchapter}} 하위 장을 삭제하시겠습니까?";
2425
+ var are_you_sure_to_delete_chapter_from_textbook = "교과서 {{chapter}}에서 {{textbook}}장을 삭제하시겠습니까?";
2426
+ var do_you_want_to_quit_your_exam = "당신의 시험을 종료하시겠습니까?";
2427
+ var home = "집";
2428
+ var profile = "프로필";
2429
+ var settings = "설정";
2430
+ var sign_up_school_information = "회원가입 - 학교정보";
2431
+ var korean_high_school = "한국 고등학교";
2432
+ var sign_up_student_information = "회원가입 - 학생정보";
2433
+ var placeholder_student_name = "김ㅇㅇ";
2434
+ var student_name_is_required = "학생 이름은 필수입니다!";
2435
+ var the_parent_phone_is_not_valid = "부모 전화번호가 유효하지 않습니다.";
2436
+ var the_number_must_be_11_number_or_10_number = "숫자는 11자리 또는 10자리여야 합니다.";
2437
+ var difficult_level = "어려운 수준";
2438
+ var difficulty_explain = "설명하기 어려움";
2439
+ var explain_your_answer = "Explain your answer";
2440
+ var add_new_row = "답을 설명하세요";
2441
+ var question_text_required = "질문 텍스트가 필요합니다";
2442
+ var create_question_success = "질문이 성공적으로 생성되었습니다";
2443
+ var update_question_success = "질문이 성공적으로 업데이트되었습니다";
2444
+ var number_of_answers = "답변 수";
2445
+ var correct_answers = "올바른 답";
2446
+ var correct_answer = "정답";
2447
+ var mark = "표시";
2448
+ var easy = "쉬운";
2449
+ var intermediate = "중급";
2450
+ var difficult = "어려운";
2451
+ var answer_error_create_question = "답변 오류 질문 만들기";
2452
+ var answer_must_have_text = "답변에는 텍스트가 있어야 합니다.";
2453
+ var mark_must_be_positive_number = "표시는 양수여야 합니다.";
2454
+ var duplicate_token_in_answer = "답변에 중복된 토큰이 있습니다.";
2455
+ var please_select_answer_for_all_blank = "모두 비어 있는 경우 답을 선택하세요.";
2456
+ var please_create_at_least_2_option = "옵션을 2개 이상 생성하세요.";
2457
+ var please_choose_correct_answer = "정답을 선택해주세요";
2458
+ var please_create_at_least_2_option_to_order = "주문하려면 최소 2개의 옵션을 생성하세요.";
2459
+ var please_select_valid_order = "유효한 주문을 선택하세요.";
2460
+ var please_fill_in_all_matching_text = "일치하는 텍스트를 모두 입력하세요.";
2461
+ var get_exam_detail_error = "시험 세부 정보 가져오기 오류";
2462
+ var full_name_is_required = "성명은 필수 항목입니다";
2463
+ var email_is_required = "이메일은 필수입니다";
2464
+ var not_found = "찾을 수 없음";
2465
+ var enter_text_to_confirm_delete = "삭제를 확인하려면 \"{{text}}\" 를 입력하세요";
2330
2466
  var lang_ko = {
2331
2467
  problem_solving: problem_solving,
2332
2468
  my_story: my_story,
@@ -2370,6 +2506,8 @@ var lang_ko = {
2370
2506
  do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam,
2371
2507
  are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam,
2372
2508
  are_you_sure_you_want_to_delete_the_textbook: are_you_sure_you_want_to_delete_the_textbook,
2509
+ are_you_sure_you_want_to_delete_the_user: are_you_sure_you_want_to_delete_the_user,
2510
+ are_you_sure_you_want_to_delete_the_article: are_you_sure_you_want_to_delete_the_article,
2373
2511
  yes: yes,
2374
2512
  no: no,
2375
2513
  cancel: cancel,
@@ -2401,8 +2539,13 @@ var lang_ko = {
2401
2539
  duration: duration,
2402
2540
  answer_count: answer_count,
2403
2541
  question_count: question_count,
2542
+ multi_choice: multi_choice,
2404
2543
  category: category,
2405
2544
  _category: _category,
2545
+ score: score,
2546
+ enter_score: enter_score,
2547
+ exam_title_required: exam_title_required,
2548
+ question_category_required: question_category_required,
2406
2549
  save_and_exit: save_and_exit,
2407
2550
  update_exam: update_exam,
2408
2551
  create_exam: create_exam,
@@ -2428,12 +2571,16 @@ var lang_ko = {
2428
2571
  weekly_day: weekly_day,
2429
2572
  weekly_days: weekly_days,
2430
2573
  enter_class_name: enter_class_name,
2431
- name: name,
2574
+ class_required: class_required,
2432
2575
  total_teachers: total_teachers,
2576
+ start_date_required: start_date_required,
2577
+ end_date_required: end_date_required,
2578
+ name: name,
2433
2579
  full_name: full_name,
2434
2580
  email: email,
2581
+ is_paid: is_paid,
2582
+ payment_time: payment_time,
2435
2583
  payments: payments,
2436
- view_payments: view_payments,
2437
2584
  sunday: sunday,
2438
2585
  monday: monday,
2439
2586
  tuesday: tuesday,
@@ -2442,7 +2589,9 @@ var lang_ko = {
2442
2589
  friday: friday,
2443
2590
  saturday: saturday,
2444
2591
  total_lessons: total_lessons,
2592
+ is_cancelled: is_cancelled,
2445
2593
  weekly_days_required: weekly_days_required,
2594
+ main_teacher_required: main_teacher_required,
2446
2595
  main_teacher: main_teacher,
2447
2596
  the_first: the_first,
2448
2597
  the_second: the_second,
@@ -2766,7 +2915,7 @@ var lang_ko = {
2766
2915
  are_you_sure_to_delete_subject: are_you_sure_to_delete_subject,
2767
2916
  drop_a_file_here_or_click_to_browse: drop_a_file_here_or_click_to_browse,
2768
2917
  delete_users_csv: delete_users_csv,
2769
- are_you_sure_to_delete_user: are_you_sure_to_delete_user,
2918
+ are_you_sure_to_delete_users: are_you_sure_to_delete_users,
2770
2919
  enter_phone_number: enter_phone_number,
2771
2920
  enter_school_name: enter_school_name,
2772
2921
  enter_grade: enter_grade,
@@ -2781,7 +2930,7 @@ var lang_ko = {
2781
2930
  select_type: select_type,
2782
2931
  no_message: no_message,
2783
2932
  this_is_the_guidance_text: this_is_the_guidance_text,
2784
- "the_page_you_are_looking_for_was_not_found.": "찾으시는 페이지를 찾을 수 없습니다.",
2933
+ the_page_you_are_looking_for_was_not_found: the_page_you_are_looking_for_was_not_found,
2785
2934
  oops: oops,
2786
2935
  please_enter: please_enter,
2787
2936
  hint: hint,
@@ -2835,13 +2984,105 @@ var lang_ko = {
2835
2984
  role: role,
2836
2985
  total_uses: total_uses,
2837
2986
  create_question: create_question,
2987
+ parent_question: parent_question,
2988
+ edit_question: edit_question,
2838
2989
  articles: articles,
2839
2990
  add_lesson: add_lesson,
2840
2991
  date: date,
2841
2992
  the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard,
2842
2993
  an_unexpected_error_has_occurred: an_unexpected_error_has_occurred,
2843
2994
  select_roles: select_roles,
2844
- no_academy_selected: no_academy_selected
2995
+ no_academy_selected: no_academy_selected,
2996
+ delete_data_successfully: delete_data_successfully,
2997
+ update_academy_successfully: update_academy_successfully,
2998
+ create_academy_successfully: create_academy_successfully,
2999
+ update_article_successfully: update_article_successfully,
3000
+ create_article_successfully: create_article_successfully,
3001
+ update_category_successfully: update_category_successfully,
3002
+ create_category_successfully: create_category_successfully,
3003
+ please_fill_in_all_fields_for_this: please_fill_in_all_fields_for_this,
3004
+ duplicate_weekly_day: duplicate_weekly_day,
3005
+ remove_lesson_failed: remove_lesson_failed,
3006
+ update_lesson_successfully: update_lesson_successfully,
3007
+ create_lesson_successfully: create_lesson_successfully,
3008
+ update_class_successfully: update_class_successfully,
3009
+ create_class_successfully: create_class_successfully,
3010
+ start_times_and_end_times_are_required: start_times_and_end_times_are_required,
3011
+ start_times_must_be_less_than_end_time: start_times_must_be_less_than_end_time,
3012
+ remove_student_successfully: remove_student_successfully,
3013
+ remove_teacher_successfully: remove_teacher_successfully,
3014
+ update_notification_successfully: update_notification_successfully,
3015
+ create_notification_successfully: create_notification_successfully,
3016
+ please_select_category: please_select_category,
3017
+ update_social_successfully: update_social_successfully,
3018
+ import_csv_successfully: import_csv_successfully,
3019
+ download_successfully: download_successfully,
3020
+ file_type_not_valid: file_type_not_valid,
3021
+ upload_image_successfully: upload_image_successfully,
3022
+ category_is_required: category_is_required,
3023
+ textbook_name_is_required: textbook_name_is_required,
3024
+ textbook_subject_is_required: textbook_subject_is_required,
3025
+ update_the_textbook_successfully: update_the_textbook_successfully,
3026
+ create_the_textbook_successfully: create_the_textbook_successfully,
3027
+ finish_exam_successful: finish_exam_successful,
3028
+ you_has_been_kicked_out: you_has_been_kicked_out,
3029
+ the_teacher_has_closed_or_deleted_the_exam: the_teacher_has_closed_or_deleted_the_exam,
3030
+ check_in_lesson_successfully: check_in_lesson_successfully,
3031
+ update_attendance_status_successfully: update_attendance_status_successfully,
3032
+ save_exam_successfully: save_exam_successfully,
3033
+ kick_out_student_successful: kick_out_student_successful,
3034
+ please_select_an_exam_subject: please_select_an_exam_subject,
3035
+ please_enter_exam_title: please_enter_exam_title,
3036
+ exam_required_at_least_one_question: exam_required_at_least_one_question,
3037
+ create_exam_failed: create_exam_failed,
3038
+ please_select_category_for_article: please_select_category_for_article,
3039
+ placeholder_student_selector: placeholder_student_selector,
3040
+ error_uploading_file: error_uploading_file,
3041
+ remove_lesson_successfully: remove_lesson_successfully,
3042
+ user_not_allow_to_register_role: user_not_allow_to_register_role,
3043
+ are_you_sure_to_delete_article_from_chapter: are_you_sure_to_delete_article_from_chapter,
3044
+ are_you_sure_to_delete_subchapter_from_chapter: are_you_sure_to_delete_subchapter_from_chapter,
3045
+ are_you_sure_to_delete_chapter_from_textbook: are_you_sure_to_delete_chapter_from_textbook,
3046
+ do_you_want_to_quit_your_exam: do_you_want_to_quit_your_exam,
3047
+ home: home,
3048
+ profile: profile,
3049
+ settings: settings,
3050
+ sign_up_school_information: sign_up_school_information,
3051
+ korean_high_school: korean_high_school,
3052
+ sign_up_student_information: sign_up_student_information,
3053
+ placeholder_student_name: placeholder_student_name,
3054
+ student_name_is_required: student_name_is_required,
3055
+ the_parent_phone_is_not_valid: the_parent_phone_is_not_valid,
3056
+ the_number_must_be_11_number_or_10_number: the_number_must_be_11_number_or_10_number,
3057
+ difficult_level: difficult_level,
3058
+ difficulty_explain: difficulty_explain,
3059
+ explain_your_answer: explain_your_answer,
3060
+ add_new_row: add_new_row,
3061
+ question_text_required: question_text_required,
3062
+ create_question_success: create_question_success,
3063
+ update_question_success: update_question_success,
3064
+ number_of_answers: number_of_answers,
3065
+ correct_answers: correct_answers,
3066
+ correct_answer: correct_answer,
3067
+ mark: mark,
3068
+ easy: easy,
3069
+ intermediate: intermediate,
3070
+ difficult: difficult,
3071
+ answer_error_create_question: answer_error_create_question,
3072
+ answer_must_have_text: answer_must_have_text,
3073
+ mark_must_be_positive_number: mark_must_be_positive_number,
3074
+ duplicate_token_in_answer: duplicate_token_in_answer,
3075
+ please_select_answer_for_all_blank: please_select_answer_for_all_blank,
3076
+ please_create_at_least_2_option: please_create_at_least_2_option,
3077
+ please_choose_correct_answer: please_choose_correct_answer,
3078
+ please_create_at_least_2_option_to_order: please_create_at_least_2_option_to_order,
3079
+ please_select_valid_order: please_select_valid_order,
3080
+ please_fill_in_all_matching_text: please_fill_in_all_matching_text,
3081
+ get_exam_detail_error: get_exam_detail_error,
3082
+ full_name_is_required: full_name_is_required,
3083
+ email_is_required: email_is_required,
3084
+ not_found: not_found,
3085
+ enter_text_to_confirm_delete: enter_text_to_confirm_delete
2845
3086
  };
2846
3087
 
2847
3088
  var problem_solving$1 = "Problem Solving";
@@ -2884,7 +3125,8 @@ var here$1 = "here";
2884
3125
  var do_you_want_to_complete_the_exam$1 = "Do you want to complete the exam?";
2885
3126
  var are_you_sure_you_want_to_delete_the_exam$1 = "Are you sure you want to delete the exam?";
2886
3127
  var are_you_sure_you_want_to_delete_the_textbook$1 = "Are you sure you want to delete the textbook?";
2887
- var are_you_sure_you_want_to_delete_user = "Are you sure you want to delete: {{user}}?";
3128
+ var are_you_sure_you_want_to_delete_the_user$1 = "Are you sure you want to delete the user: {{user}}?";
3129
+ var are_you_sure_you_want_to_delete_the_article$1 = "Are you sure you want to delete the article: {{article}}?";
2888
3130
  var yes$1 = "Yes";
2889
3131
  var no$1 = "No";
2890
3132
  var cancel$1 = "Cancel";
@@ -2912,38 +3154,38 @@ var problems$1 = "Problems";
2912
3154
  var problem_solving_time$1 = "Problem solving time";
2913
3155
  var minutes$1 = "m";
2914
3156
  var correct_rate$1 = "Correct rate";
2915
- var difficult_level = "Difficult level";
2916
- var difficulty_explain = "(The Difficulty Level provides an indication of the difficulty level of each test question)";
2917
- var explain_your_answer = "Explain your answer";
3157
+ var difficult_level$1 = "Difficult level";
3158
+ var difficulty_explain$1 = "(The Difficulty Level provides an indication of the difficulty level of each test question)";
3159
+ var explain_your_answer$1 = "Explain your answer";
2918
3160
  var hint$1 = "Hint";
2919
3161
  var save_and_add_next_question$1 = "Save and add next question";
2920
3162
  var save_and_exit$1 = "Save and exit";
2921
3163
  var question_text$1 = "Question text";
2922
3164
  var title$1 = "Title";
2923
3165
  var create_question$1 = "Create question";
2924
- var parent_question = "Parent question";
2925
- var edit_question = "Edit question";
3166
+ var parent_question$1 = "Parent question";
3167
+ var edit_question$1 = "Edit question";
2926
3168
  var edit$1 = "Edit";
2927
- var easy = "Easy";
2928
- var intermediate = "Intermediate";
2929
- var difficult = "Difficult";
3169
+ var easy$1 = "Easy";
3170
+ var intermediate$1 = "Intermediate";
3171
+ var difficult$1 = "Difficult";
2930
3172
  var article$1 = "Article";
2931
- var correct_answer = "Correct answer";
2932
- var mark = "Mark";
3173
+ var correct_answer$1 = "Correct answer";
3174
+ var mark$1 = "Mark";
2933
3175
  var answer$1 = "Answer";
2934
- var add_new_row = "Add new row";
2935
- var question_text_required = "Question text is required";
2936
- var create_question_success = "Question is created successfully";
2937
- var update_question_success = "Question is updated successfully";
2938
- var number_of_answers = "Number of answers";
2939
- var correct_answers = "Correct answers";
3176
+ var add_new_row$1 = "Add new row";
3177
+ var question_text_required$1 = "Question text is required";
3178
+ var create_question_success$1 = "Question is created successfully";
3179
+ var update_question_success$1 = "Question is updated successfully";
3180
+ var number_of_answers$1 = "Number of answers";
3181
+ var correct_answers$1 = "Correct answers";
2940
3182
  var category$1 = "Category";
2941
3183
  var _category$1 = "Category";
2942
- var score = "Score";
3184
+ var score$1 = "Score";
2943
3185
  var enter_title$1 = "Enter title";
2944
- var enter_score = "Enter score";
2945
- var exam_title_required = "Exam title is required";
2946
- var question_category_required = "Question category is required";
3186
+ var enter_score$1 = "Enter score";
3187
+ var exam_title_required$1 = "Exam title is required";
3188
+ var question_category_required$1 = "Question category is required";
2947
3189
  var start_time$1 = "Start time";
2948
3190
  var end_time$1 = "End time";
2949
3191
  var start_date$1 = "Start date";
@@ -2951,20 +3193,20 @@ var end_date$1 = "End date";
2951
3193
  var weekly_day$1 = "Weekly day";
2952
3194
  var weekly_days$1 = "Weekly days";
2953
3195
  var enter_class_name$1 = "Enter class name";
2954
- var class_required = "Class name is required";
3196
+ var class_required$1 = "Class name is required";
2955
3197
  var total_teachers$1 = "Total teachers";
2956
- var start_date_required = "Start date is required";
2957
- var end_date_required = "End date is required";
3198
+ var start_date_required$1 = "Start date is required";
3199
+ var end_date_required$1 = "End date is required";
3200
+ var name$1 = "Name";
2958
3201
  var full_name$1 = "Full name";
2959
3202
  var email$1 = "Email";
2960
- var is_paid = "Is paid";
2961
- var payment_time = "Payment time";
2962
- var create_and_continue$1 = "Create and continue";
3203
+ var is_paid$1 = "Is paid";
3204
+ var payment_time$1 = "Payment time";
2963
3205
  var payments$1 = "Payments";
2964
3206
  var duration$1 = "Duration";
2965
3207
  var answer_count$1 = "Answer count";
2966
3208
  var question_count$1 = "Question count";
2967
- var multi_choice = "Is multiple";
3209
+ var multi_choice$1 = "Is multiple";
2968
3210
  var select_placeholder$1 = "Select...";
2969
3211
  var view_exam$1 = "View exam";
2970
3212
  var update_exam$1 = "Update exam";
@@ -2979,7 +3221,6 @@ var code$1 = "Code";
2979
3221
  var type$1 = "Type";
2980
3222
  var description$1 = "Description";
2981
3223
  var actions$1 = "Actions";
2982
- var name$1 = "Name";
2983
3224
  var sunday$1 = "Sunday";
2984
3225
  var monday$1 = "Monday";
2985
3226
  var tuesday$1 = "Tuesday";
@@ -2988,11 +3229,11 @@ var thursday$1 = "Thursday";
2988
3229
  var friday$1 = "Friday";
2989
3230
  var saturday$1 = "Saturday";
2990
3231
  var total_lessons$1 = "Total lessons";
2991
- var is_cancelled = "Is cancelled";
3232
+ var is_cancelled$1 = "Is cancelled";
2992
3233
  var date$1 = "Date";
2993
3234
  var weekly_days_required$1 = "Weekly days are required";
2994
3235
  var main_teacher$1 = "Main teacher";
2995
- var main_teacher_required = "Main teacher is required";
3236
+ var main_teacher_required$1 = "Main teacher is required";
2996
3237
  var teacher$1 = "Teacher";
2997
3238
  var the_first$1 = "The first";
2998
3239
  var the_second$1 = "The second";
@@ -3064,6 +3305,8 @@ var waiting_for_all_students_to_complete_the_exam$1 = "Waiting for all students
3064
3305
  var created_at$1 = "Created";
3065
3306
  var name_required$1 = "Name is required";
3066
3307
  var type_required$1 = "Type is required";
3308
+ var link_required$1 = "Link is required";
3309
+ var create_and_continue$1 = "Create and continue";
3067
3310
  var content$1 = "Content";
3068
3311
  var color$1 = "Color";
3069
3312
  var link$1 = "Link";
@@ -3255,7 +3498,7 @@ var password$1 = "Password";
3255
3498
  var email_address$1 = "Email Address";
3256
3499
  var please_enter_your_question$1 = "Please enter your question.";
3257
3500
  var test_selection$1 = "Test selection";
3258
- var half_selection$1 = "Half selection";
3501
+ var half_selection$1 = "Selection class";
3259
3502
  var choose_a_problem$1 = "Choose a problem";
3260
3503
  var question_content$1 = "Question content";
3261
3504
  var questions_to_ask$1 = "Questions to ask";
@@ -3323,7 +3566,7 @@ var subject_name$1 = "Subject name";
3323
3566
  var are_you_sure_to_delete_subject$1 = "Are you sure to delete subject:";
3324
3567
  var drop_a_file_here_or_click_to_browse$1 = "Drop a file here or click to browse";
3325
3568
  var delete_users_csv$1 = "Delete users csv";
3326
- var are_you_sure_to_delete_user$1 = "Are you sure to delete user:";
3569
+ var are_you_sure_to_delete_users$1 = "Are you sure to delete users?";
3327
3570
  var enter_phone_number$1 = "Enter phone number";
3328
3571
  var enter_school_name$1 = "Enter school name";
3329
3572
  var enter_grade$1 = "Enter grade";
@@ -3338,6 +3581,7 @@ var export_csv$1 = "Export csv";
3338
3581
  var select_type$1 = "Select type";
3339
3582
  var no_message$1 = "No message";
3340
3583
  var this_is_the_guidance_text$1 = "This is the guidance text.";
3584
+ var the_page_you_are_looking_for_was_not_found$1 = "The page you are looking for was not found.";
3341
3585
  var oops$1 = "Oops! You are lost.";
3342
3586
  var please_enter$1 = "Please enter...";
3343
3587
  var notifications$1 = "Notifications";
@@ -3390,6 +3634,82 @@ var the_code_has_been_copied_to_your_clipboard$1 = "The code has been copied to
3390
3634
  var an_unexpected_error_has_occurred$1 = "An unexpected error has occurred";
3391
3635
  var select_roles$1 = "Select roles";
3392
3636
  var no_academy_selected$1 = "No Academy Selected";
3637
+ var delete_data_successfully$1 = "Delete data successfully";
3638
+ var update_academy_successfully$1 = "Update academy successfully";
3639
+ var create_academy_successfully$1 = "Create academy successfully";
3640
+ var update_article_successfully$1 = "Update article successfully";
3641
+ var create_article_successfully$1 = "Create article successfully";
3642
+ var update_category_successfully$1 = "Update category successfully";
3643
+ var create_category_successfully$1 = "Create category successfully";
3644
+ var please_fill_in_all_fields_for_this$1 = "Please fill in all fields for this {{day}}";
3645
+ var duplicate_weekly_day$1 = "Duplicate weekly day";
3646
+ var remove_lesson_failed$1 = "Remove lesson failed";
3647
+ var update_lesson_successfully$1 = "Update lesson successfully";
3648
+ var create_lesson_successfully$1 = "Create lesson successfully";
3649
+ var update_class_successfully$1 = "Update class successfully";
3650
+ var create_class_successfully$1 = "Create class successfully";
3651
+ var start_times_and_end_times_are_required$1 = "Start times and end times are required";
3652
+ var start_times_must_be_less_than_end_time$1 = "Start times must be less than end time";
3653
+ var remove_student_successfully$1 = "Remove student successfully";
3654
+ var remove_teacher_successfully$1 = "Remove teacher successfully";
3655
+ var update_notification_successfully$1 = "Update Notification successfully";
3656
+ var create_notification_successfully$1 = "Create Notification successfully";
3657
+ var please_select_category$1 = "Please select category";
3658
+ var update_social_successfully$1 = "Update social successfully";
3659
+ var import_csv_successfully$1 = "Import CSV successfully";
3660
+ var download_successfully$1 = "Download successfully";
3661
+ var file_type_not_valid$1 = "File type not valid! Please upload a csv file.";
3662
+ var upload_image_successfully$1 = "Upload image successfully";
3663
+ var category_is_required$1 = "Category is required";
3664
+ var textbook_name_is_required$1 = "Textbook name is required";
3665
+ var textbook_subject_is_required$1 = "Textbook subject is required";
3666
+ var update_the_textbook_successfully$1 = "Update the textbook successfully";
3667
+ var create_the_textbook_successfully$1 = "Create the textbook successfully";
3668
+ var finish_exam_successful$1 = "Finish exam successful";
3669
+ var you_has_been_kicked_out$1 = "You has been kicked out";
3670
+ var the_teacher_has_closed_or_deleted_the_exam$1 = "The teacher has closed or deleted the exam, please try again later";
3671
+ var check_in_lesson_successfully$1 = "Check in lesson successfully";
3672
+ var update_attendance_status_successfully$1 = "Update attendance status successfully";
3673
+ var save_exam_successfully$1 = "Save exam successfully";
3674
+ var kick_out_student_successful$1 = "Kick out student successful!";
3675
+ var please_select_an_exam_subject$1 = "Please select an exam subject";
3676
+ var please_enter_exam_title$1 = "Please enter exam title";
3677
+ var exam_required_at_least_one_question$1 = "Exam required at least one question";
3678
+ var create_exam_failed$1 = "Create exam failed";
3679
+ var please_select_category_for_article$1 = "Please select category for article {{article}}";
3680
+ var placeholder_student_selector$1 = "Type at least 2 characters to search";
3681
+ var error_uploading_file$1 = "Error uploading file";
3682
+ var remove_lesson_successfully$1 = "Remove lesson successfully";
3683
+ var user_not_allow_to_register_role$1 = "{{user}} not allow to register {{role}}";
3684
+ var are_you_sure_to_delete_article_from_chapter$1 = "Are you sure to delete article {{articleNumber}} from chapter {{chapterName}}?";
3685
+ var are_you_sure_to_delete_subchapter_from_chapter$1 = "Are you sure to delete subchapter {{subchapter}} from chapter {{chapter}}?";
3686
+ var are_you_sure_to_delete_chapter_from_textbook$1 = "Are you sure to delete chapter {{chapter}} from textbook {{textbook}}?";
3687
+ var do_you_want_to_quit_your_exam$1 = "Do you want to quit your exam?";
3688
+ var home$1 = "Home";
3689
+ var profile$1 = "Profile";
3690
+ var settings$1 = "Settings";
3691
+ var sign_up_school_information$1 = "Sign up - School information";
3692
+ var korean_high_school$1 = "Korean high school";
3693
+ var sign_up_student_information$1 = "Sign up - Student Information";
3694
+ var placeholder_student_name$1 = "Kim ㅇㅇ";
3695
+ var student_name_is_required$1 = "Student Name is required!";
3696
+ var the_parent_phone_is_not_valid$1 = "The parent phone is not valid";
3697
+ var the_number_must_be_11_number_or_10_number$1 = "The number must be 11 number or 10 number";
3698
+ var answer_error_create_question$1 = "Answer error create question";
3699
+ var answer_must_have_text$1 = "Answer must have text";
3700
+ var mark_must_be_positive_number$1 = "Mark must be positive number";
3701
+ var duplicate_token_in_answer$1 = "Duplicate token in answer";
3702
+ var please_select_answer_for_all_blank$1 = "Please select answer for all blank";
3703
+ var please_create_at_least_2_option$1 = "Please create at least 2 option";
3704
+ var please_choose_correct_answer$1 = "Please choose correct answer";
3705
+ var please_create_at_least_2_option_to_order$1 = "Please create at least 2 option to order";
3706
+ var please_select_valid_order$1 = "Please select valid order";
3707
+ var please_fill_in_all_matching_text$1 = "Please fill in all matching text";
3708
+ var get_exam_detail_error$1 = "Get exam detail error";
3709
+ var full_name_is_required$1 = "Full name is required";
3710
+ var email_is_required$1 = "Email is required";
3711
+ var not_found$1 = "Not found";
3712
+ var enter_text_to_confirm_delete$1 = "Enter \"{{text}}\" to confirm delete";
3393
3713
  var lang_en = {
3394
3714
  problem_solving: problem_solving$1,
3395
3715
  my_story: my_story$1,
@@ -3433,7 +3753,8 @@ var lang_en = {
3433
3753
  do_you_want_to_complete_the_exam: do_you_want_to_complete_the_exam$1,
3434
3754
  are_you_sure_you_want_to_delete_the_exam: are_you_sure_you_want_to_delete_the_exam$1,
3435
3755
  are_you_sure_you_want_to_delete_the_textbook: are_you_sure_you_want_to_delete_the_textbook$1,
3436
- are_you_sure_you_want_to_delete_user: are_you_sure_you_want_to_delete_user,
3756
+ are_you_sure_you_want_to_delete_the_user: are_you_sure_you_want_to_delete_the_user$1,
3757
+ are_you_sure_you_want_to_delete_the_article: are_you_sure_you_want_to_delete_the_article$1,
3437
3758
  yes: yes$1,
3438
3759
  no: no$1,
3439
3760
  cancel: cancel$1,
@@ -3461,39 +3782,39 @@ var lang_en = {
3461
3782
  problem_solving_time: problem_solving_time$1,
3462
3783
  minutes: minutes$1,
3463
3784
  correct_rate: correct_rate$1,
3464
- difficult_level: difficult_level,
3465
- difficulty_explain: difficulty_explain,
3466
- explain_your_answer: explain_your_answer,
3785
+ difficult_level: difficult_level$1,
3786
+ difficulty_explain: difficulty_explain$1,
3787
+ explain_your_answer: explain_your_answer$1,
3467
3788
  hint: hint$1,
3468
3789
  save_and_add_next_question: save_and_add_next_question$1,
3469
3790
  save_and_exit: save_and_exit$1,
3470
3791
  question_text: question_text$1,
3471
3792
  title: title$1,
3472
3793
  create_question: create_question$1,
3473
- parent_question: parent_question,
3474
- edit_question: edit_question,
3794
+ parent_question: parent_question$1,
3795
+ edit_question: edit_question$1,
3475
3796
  edit: edit$1,
3476
3797
  "delete": "Delete",
3477
- easy: easy,
3478
- intermediate: intermediate,
3479
- difficult: difficult,
3798
+ easy: easy$1,
3799
+ intermediate: intermediate$1,
3800
+ difficult: difficult$1,
3480
3801
  article: article$1,
3481
- correct_answer: correct_answer,
3482
- mark: mark,
3802
+ correct_answer: correct_answer$1,
3803
+ mark: mark$1,
3483
3804
  answer: answer$1,
3484
- add_new_row: add_new_row,
3485
- question_text_required: question_text_required,
3486
- create_question_success: create_question_success,
3487
- update_question_success: update_question_success,
3488
- number_of_answers: number_of_answers,
3489
- correct_answers: correct_answers,
3805
+ add_new_row: add_new_row$1,
3806
+ question_text_required: question_text_required$1,
3807
+ create_question_success: create_question_success$1,
3808
+ update_question_success: update_question_success$1,
3809
+ number_of_answers: number_of_answers$1,
3810
+ correct_answers: correct_answers$1,
3490
3811
  category: category$1,
3491
3812
  _category: _category$1,
3492
- score: score,
3813
+ score: score$1,
3493
3814
  enter_title: enter_title$1,
3494
- enter_score: enter_score,
3495
- exam_title_required: exam_title_required,
3496
- question_category_required: question_category_required,
3815
+ enter_score: enter_score$1,
3816
+ exam_title_required: exam_title_required$1,
3817
+ question_category_required: question_category_required$1,
3497
3818
  start_time: start_time$1,
3498
3819
  end_time: end_time$1,
3499
3820
  start_date: start_date$1,
@@ -3501,20 +3822,20 @@ var lang_en = {
3501
3822
  weekly_day: weekly_day$1,
3502
3823
  weekly_days: weekly_days$1,
3503
3824
  enter_class_name: enter_class_name$1,
3504
- class_required: class_required,
3825
+ class_required: class_required$1,
3505
3826
  total_teachers: total_teachers$1,
3506
- start_date_required: start_date_required,
3507
- end_date_required: end_date_required,
3827
+ start_date_required: start_date_required$1,
3828
+ end_date_required: end_date_required$1,
3829
+ name: name$1,
3508
3830
  full_name: full_name$1,
3509
3831
  email: email$1,
3510
- is_paid: is_paid,
3511
- payment_time: payment_time,
3512
- create_and_continue: create_and_continue$1,
3832
+ is_paid: is_paid$1,
3833
+ payment_time: payment_time$1,
3513
3834
  payments: payments$1,
3514
3835
  duration: duration$1,
3515
3836
  answer_count: answer_count$1,
3516
3837
  question_count: question_count$1,
3517
- multi_choice: multi_choice,
3838
+ multi_choice: multi_choice$1,
3518
3839
  select_placeholder: select_placeholder$1,
3519
3840
  view_exam: view_exam$1,
3520
3841
  update_exam: update_exam$1,
@@ -3529,7 +3850,6 @@ var lang_en = {
3529
3850
  type: type$1,
3530
3851
  description: description$1,
3531
3852
  actions: actions$1,
3532
- name: name$1,
3533
3853
  sunday: sunday$1,
3534
3854
  monday: monday$1,
3535
3855
  tuesday: tuesday$1,
@@ -3538,11 +3858,11 @@ var lang_en = {
3538
3858
  friday: friday$1,
3539
3859
  saturday: saturday$1,
3540
3860
  total_lessons: total_lessons$1,
3541
- is_cancelled: is_cancelled,
3861
+ is_cancelled: is_cancelled$1,
3542
3862
  date: date$1,
3543
3863
  weekly_days_required: weekly_days_required$1,
3544
3864
  main_teacher: main_teacher$1,
3545
- main_teacher_required: main_teacher_required,
3865
+ main_teacher_required: main_teacher_required$1,
3546
3866
  teacher: teacher$1,
3547
3867
  the_first: the_first$1,
3548
3868
  the_second: the_second$1,
@@ -3612,6 +3932,8 @@ var lang_en = {
3612
3932
  created_at: created_at$1,
3613
3933
  name_required: name_required$1,
3614
3934
  type_required: type_required$1,
3935
+ link_required: link_required$1,
3936
+ create_and_continue: create_and_continue$1,
3615
3937
  content: content$1,
3616
3938
  color: color$1,
3617
3939
  link: link$1,
@@ -3863,7 +4185,7 @@ var lang_en = {
3863
4185
  are_you_sure_to_delete_subject: are_you_sure_to_delete_subject$1,
3864
4186
  drop_a_file_here_or_click_to_browse: drop_a_file_here_or_click_to_browse$1,
3865
4187
  delete_users_csv: delete_users_csv$1,
3866
- are_you_sure_to_delete_user: are_you_sure_to_delete_user$1,
4188
+ are_you_sure_to_delete_users: are_you_sure_to_delete_users$1,
3867
4189
  enter_phone_number: enter_phone_number$1,
3868
4190
  enter_school_name: enter_school_name$1,
3869
4191
  enter_grade: enter_grade$1,
@@ -3878,7 +4200,7 @@ var lang_en = {
3878
4200
  select_type: select_type$1,
3879
4201
  no_message: no_message$1,
3880
4202
  this_is_the_guidance_text: this_is_the_guidance_text$1,
3881
- "the_page_you_are_looking_for_was_not_found.": "The page you are looking for was not found.",
4203
+ the_page_you_are_looking_for_was_not_found: the_page_you_are_looking_for_was_not_found$1,
3882
4204
  oops: oops$1,
3883
4205
  please_enter: please_enter$1,
3884
4206
  notifications: notifications$1,
@@ -3931,7 +4253,83 @@ var lang_en = {
3931
4253
  the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard$1,
3932
4254
  an_unexpected_error_has_occurred: an_unexpected_error_has_occurred$1,
3933
4255
  select_roles: select_roles$1,
3934
- no_academy_selected: no_academy_selected$1
4256
+ no_academy_selected: no_academy_selected$1,
4257
+ delete_data_successfully: delete_data_successfully$1,
4258
+ update_academy_successfully: update_academy_successfully$1,
4259
+ create_academy_successfully: create_academy_successfully$1,
4260
+ update_article_successfully: update_article_successfully$1,
4261
+ create_article_successfully: create_article_successfully$1,
4262
+ update_category_successfully: update_category_successfully$1,
4263
+ create_category_successfully: create_category_successfully$1,
4264
+ please_fill_in_all_fields_for_this: please_fill_in_all_fields_for_this$1,
4265
+ duplicate_weekly_day: duplicate_weekly_day$1,
4266
+ remove_lesson_failed: remove_lesson_failed$1,
4267
+ update_lesson_successfully: update_lesson_successfully$1,
4268
+ create_lesson_successfully: create_lesson_successfully$1,
4269
+ update_class_successfully: update_class_successfully$1,
4270
+ create_class_successfully: create_class_successfully$1,
4271
+ start_times_and_end_times_are_required: start_times_and_end_times_are_required$1,
4272
+ start_times_must_be_less_than_end_time: start_times_must_be_less_than_end_time$1,
4273
+ remove_student_successfully: remove_student_successfully$1,
4274
+ remove_teacher_successfully: remove_teacher_successfully$1,
4275
+ update_notification_successfully: update_notification_successfully$1,
4276
+ create_notification_successfully: create_notification_successfully$1,
4277
+ please_select_category: please_select_category$1,
4278
+ update_social_successfully: update_social_successfully$1,
4279
+ import_csv_successfully: import_csv_successfully$1,
4280
+ download_successfully: download_successfully$1,
4281
+ file_type_not_valid: file_type_not_valid$1,
4282
+ upload_image_successfully: upload_image_successfully$1,
4283
+ category_is_required: category_is_required$1,
4284
+ textbook_name_is_required: textbook_name_is_required$1,
4285
+ textbook_subject_is_required: textbook_subject_is_required$1,
4286
+ update_the_textbook_successfully: update_the_textbook_successfully$1,
4287
+ create_the_textbook_successfully: create_the_textbook_successfully$1,
4288
+ finish_exam_successful: finish_exam_successful$1,
4289
+ you_has_been_kicked_out: you_has_been_kicked_out$1,
4290
+ the_teacher_has_closed_or_deleted_the_exam: the_teacher_has_closed_or_deleted_the_exam$1,
4291
+ check_in_lesson_successfully: check_in_lesson_successfully$1,
4292
+ update_attendance_status_successfully: update_attendance_status_successfully$1,
4293
+ save_exam_successfully: save_exam_successfully$1,
4294
+ kick_out_student_successful: kick_out_student_successful$1,
4295
+ please_select_an_exam_subject: please_select_an_exam_subject$1,
4296
+ please_enter_exam_title: please_enter_exam_title$1,
4297
+ exam_required_at_least_one_question: exam_required_at_least_one_question$1,
4298
+ create_exam_failed: create_exam_failed$1,
4299
+ please_select_category_for_article: please_select_category_for_article$1,
4300
+ placeholder_student_selector: placeholder_student_selector$1,
4301
+ error_uploading_file: error_uploading_file$1,
4302
+ remove_lesson_successfully: remove_lesson_successfully$1,
4303
+ user_not_allow_to_register_role: user_not_allow_to_register_role$1,
4304
+ are_you_sure_to_delete_article_from_chapter: are_you_sure_to_delete_article_from_chapter$1,
4305
+ are_you_sure_to_delete_subchapter_from_chapter: are_you_sure_to_delete_subchapter_from_chapter$1,
4306
+ are_you_sure_to_delete_chapter_from_textbook: are_you_sure_to_delete_chapter_from_textbook$1,
4307
+ do_you_want_to_quit_your_exam: do_you_want_to_quit_your_exam$1,
4308
+ home: home$1,
4309
+ profile: profile$1,
4310
+ settings: settings$1,
4311
+ sign_up_school_information: sign_up_school_information$1,
4312
+ korean_high_school: korean_high_school$1,
4313
+ sign_up_student_information: sign_up_student_information$1,
4314
+ placeholder_student_name: placeholder_student_name$1,
4315
+ student_name_is_required: student_name_is_required$1,
4316
+ the_parent_phone_is_not_valid: the_parent_phone_is_not_valid$1,
4317
+ the_number_must_be_11_number_or_10_number: the_number_must_be_11_number_or_10_number$1,
4318
+ answer_error_create_question: answer_error_create_question$1,
4319
+ answer_must_have_text: answer_must_have_text$1,
4320
+ mark_must_be_positive_number: mark_must_be_positive_number$1,
4321
+ duplicate_token_in_answer: duplicate_token_in_answer$1,
4322
+ please_select_answer_for_all_blank: please_select_answer_for_all_blank$1,
4323
+ please_create_at_least_2_option: please_create_at_least_2_option$1,
4324
+ please_choose_correct_answer: please_choose_correct_answer$1,
4325
+ please_create_at_least_2_option_to_order: please_create_at_least_2_option_to_order$1,
4326
+ please_select_valid_order: please_select_valid_order$1,
4327
+ please_fill_in_all_matching_text: please_fill_in_all_matching_text$1,
4328
+ get_exam_detail_error: get_exam_detail_error$1,
4329
+ full_name_is_required: full_name_is_required$1,
4330
+ email_is_required: email_is_required$1,
4331
+ not_found: not_found$1,
4332
+ enter_text_to_confirm_delete: enter_text_to_confirm_delete$1
3935
4333
  };
3936
4334
 
3937
4335
  i18n.use(reactI18next.initReactI18next).init({
@@ -3950,10 +4348,11 @@ i18n.use(reactI18next.initReactI18next).init({
3950
4348
  }
3951
4349
  });
3952
4350
 
3953
- var TheLanguageDropdown = function TheLanguageDropdown() {
3954
- var _useLanguage = useLanguage(),
4351
+ var TheLanguageDropdown = function TheLanguageDropdown(_ref) {
4352
+ var history = _ref.history;
4353
+ var _useLanguage = useLanguage(history),
3955
4354
  currentLanguage = _useLanguage.currentLanguage,
3956
- setItemLanguage = _useLanguage.setItemLanguage;
4355
+ handleChangeItemLanguage = _useLanguage.handleChangeItemLanguage;
3957
4356
  var _useState = React.useState(null),
3958
4357
  open = _useState[0],
3959
4358
  setOpen = _useState[1];
@@ -3965,7 +4364,7 @@ var TheLanguageDropdown = function TheLanguageDropdown() {
3965
4364
  };
3966
4365
  var handleChangeLanguage = function handleChangeLanguage(code) {
3967
4366
  handleClose();
3968
- setItemLanguage(code);
4367
+ handleChangeItemLanguage(code);
3969
4368
  };
3970
4369
  var popoverStyle = {
3971
4370
  width: 48,
@@ -4078,8 +4477,7 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4078
4477
  if (_temp && _temp.then) return _temp.then(function () {});
4079
4478
  });
4080
4479
  }, function (error) {
4081
- var _error$response, _error$response$data;
4082
- reactToastify.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.title) || "Get user academies failed");
4480
+ reactToastify.toast.error(getErrorMessage(t, error));
4083
4481
  });
4084
4482
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
4085
4483
  } catch (e) {
@@ -4112,9 +4510,8 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4112
4510
  return Promise.resolve(handleLoginAccessToken(requestBody, false, user.academyDomain ? academyDomain : undefined)).then(function () {});
4113
4511
  });
4114
4512
  }, function (error) {
4115
- var _error$response2, _error$response2$data;
4116
4513
  academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
4117
- reactToastify.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.title) || t("switch_academy_fail"));
4514
+ reactToastify.toast.error(getErrorMessage(t, error));
4118
4515
  });
4119
4516
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
4120
4517
  } catch (e) {
@@ -4241,7 +4638,8 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4241
4638
  xs: 6,
4242
4639
  lg: 2,
4243
4640
  justifyContent: "center",
4244
- alignItems: "center"
4641
+ alignItems: "center",
4642
+ className: "d-sm-none d-md-flex"
4245
4643
  }, React__default.createElement(material.Stack, {
4246
4644
  flexDirection: "row",
4247
4645
  width: "100%",
@@ -4279,6 +4677,11 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4279
4677
  }
4280
4678
  }
4281
4679
  }
4680
+ }, React__default.createElement(material.MenuList, {
4681
+ sx: {
4682
+ maxHeight: 240,
4683
+ overflowY: "auto"
4684
+ }
4282
4685
  }, academyList.map(function (option) {
4283
4686
  var _option$name$charAt;
4284
4687
  return React__default.createElement(MenuItemCustom, {
@@ -4318,7 +4721,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4318
4721
  fontWeight: 600
4319
4722
  }
4320
4723
  }, option.name))));
4321
- }), React__default.createElement(MenuItemCustom, {
4724
+ })), React__default.createElement(MenuItemCustom, {
4322
4725
  sx: {
4323
4726
  whiteSpace: "wrap",
4324
4727
  borderRadius: "6px"
@@ -4651,7 +5054,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
4651
5054
  disableFocusListener: true,
4652
5055
  disableHoverListener: true,
4653
5056
  disableTouchListener: true,
4654
- placement: "top-start"
5057
+ placement: "top"
4655
5058
  }, React__default.createElement("div", {
4656
5059
  onClick: handleOpenTooltip
4657
5060
  }, React__default.createElement(iconMore, null))))), contentType ? React__default.createElement(material.Stack, {
@@ -4854,8 +5257,8 @@ var useDialog = function useDialog() {
4854
5257
  toggleDialog();
4855
5258
  reactToastify.toast.success(t("complete_conversation_successfully"));
4856
5259
  });
4857
- }, function () {
4858
- reactToastify.toast.error(t("fail_to_complete_conversation"));
5260
+ }, function (error) {
5261
+ reactToastify.toast.error(getErrorMessage(t, error, t("fail_to_complete_conversation")));
4859
5262
  });
4860
5263
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
4861
5264
  } catch (e) {
@@ -4884,11 +5287,10 @@ var useDialog = function useDialog() {
4884
5287
  setSelectedFile({
4885
5288
  content: res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.url
4886
5289
  });
4887
- reactToastify.toast.success("Upload image successfully");
5290
+ reactToastify.toast.success(t('upload_image_successfully'));
4888
5291
  });
4889
5292
  }, function (error) {
4890
- var _error$response;
4891
- reactToastify.toast.error((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
5293
+ reactToastify.toast.error(getErrorMessage(t, error));
4892
5294
  });
4893
5295
  }, function () {}));
4894
5296
  } catch (e) {
@@ -5800,6 +6202,8 @@ var useMessageList = function useMessageList() {
5800
6202
  var _useState3 = React.useState(false),
5801
6203
  isLoading = _useState3[0],
5802
6204
  setLoading = _useState3[1];
6205
+ var _useTranslation = reactI18next.useTranslation(),
6206
+ t = _useTranslation.t;
5803
6207
  var getMessageList = function getMessageList(conversationId) {
5804
6208
  try {
5805
6209
  var _temp2 = function _temp2() {
@@ -5820,8 +6224,8 @@ var useMessageList = function useMessageList() {
5820
6224
  });
5821
6225
  });
5822
6226
  });
5823
- }, function () {
5824
- reactToastify.toast.error("Fail to fetch data!");
6227
+ }, function (error) {
6228
+ reactToastify.toast.error(getErrorMessage(t, error));
5825
6229
  });
5826
6230
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
5827
6231
  } catch (e) {
@@ -5861,8 +6265,8 @@ var useMessageList = function useMessageList() {
5861
6265
  }
5862
6266
  });
5863
6267
  });
5864
- }, function () {
5865
- reactToastify.toast.error("Fail to fetch data!");
6268
+ }, function (error) {
6269
+ reactToastify.toast.error(getErrorMessage(t, error));
5866
6270
  _exit = true;
5867
6271
  });
5868
6272
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
@@ -5884,8 +6288,8 @@ var useMessageList = function useMessageList() {
5884
6288
  if (isLoading) return Promise.resolve();
5885
6289
  var _temp5 = _catch(function () {
5886
6290
  return Promise.resolve(deleteMessage(conversationId, id)).then(function () {});
5887
- }, function () {
5888
- reactToastify.toast.error("Fail to delete message!");
6291
+ }, function (error) {
6292
+ reactToastify.toast.error(getErrorMessage(t, error));
5889
6293
  _exit2 = true;
5890
6294
  });
5891
6295
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
@@ -5920,8 +6324,8 @@ var useMessageList = function useMessageList() {
5920
6324
  var _exit3 = false;
5921
6325
  var _temp7 = _catch(function () {
5922
6326
  return Promise.resolve(updateMessage(conversationId, id, message)).then(function () {});
5923
- }, function () {
5924
- reactToastify.toast.error("Fail to update message!");
6327
+ }, function (error) {
6328
+ reactToastify.toast.error(getErrorMessage(t, error));
5925
6329
  _exit3 = true;
5926
6330
  });
5927
6331
  return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
@@ -5948,6 +6352,8 @@ var useChatContainer = function useChatContainer(props) {
5948
6352
  var _selectedConversation3;
5949
6353
  var conversation = props.conversation,
5950
6354
  student = props.student;
6355
+ var _useTranslation = reactI18next.useTranslation(),
6356
+ t = _useTranslation.t;
5951
6357
  var concurrentConnectionPusher = reactRedux.useSelector(function (state) {
5952
6358
  var _state$common;
5953
6359
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.concurrentConnectionPusher;
@@ -6025,13 +6431,12 @@ var useChatContainer = function useChatContainer(props) {
6025
6431
  }();
6026
6432
  return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
6027
6433
  }, function (error) {
6028
- var _error$response;
6029
6434
  setMessages(function (state) {
6030
6435
  return [].concat(state.filter(function (i) {
6031
6436
  return (i === null || i === void 0 ? void 0 : i.id) !== 0;
6032
6437
  }));
6033
6438
  });
6034
- reactToastify.toast.error((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
6439
+ reactToastify.toast.error(getErrorMessage(t, error));
6035
6440
  });
6036
6441
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
6037
6442
  } catch (e) {
@@ -6050,13 +6455,12 @@ var useChatContainer = function useChatContainer(props) {
6050
6455
  });
6051
6456
  });
6052
6457
  }, function (error) {
6053
- var _error$response2;
6054
6458
  setMessages(function (state) {
6055
6459
  return [].concat(state.filter(function (i) {
6056
6460
  return (i === null || i === void 0 ? void 0 : i.id) !== 0;
6057
6461
  }));
6058
6462
  });
6059
- reactToastify.toast.error((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data);
6463
+ reactToastify.toast.error(getErrorMessage(t, error));
6060
6464
  });
6061
6465
  }, function () {})) : Promise.resolve();
6062
6466
  };
@@ -7216,12 +7620,14 @@ var useExam = function useExam(props) {
7216
7620
  callback === null || callback === void 0 ? void 0 : callback();
7217
7621
  };
7218
7622
  var validateExam = function validateExam(exam) {
7219
- if (!exam.subjectId) return t("Please select an exam subject");
7220
- if (!exam.title.trim().length) return t("Please enter exam title");
7221
- if (!exam.questions.length) return t("Exam required at least one question");
7623
+ if (!exam.subjectId) return t("please_select_an_exam_subject");
7624
+ if (!exam.title.trim().length) return t("please_enter_exam_title");
7625
+ if (!exam.questions.length) return t("exam_required_at_least_one_question");
7222
7626
  for (var i = 0; i < exam.questions.length; i++) {
7223
7627
  var question = exam.questions[i];
7224
- if (!question.categoryId) return t("Please select category for article " + question.article);
7628
+ if (!question.categoryId) return t('please_select_category_for_article', {
7629
+ article: question.article
7630
+ });
7225
7631
  }
7226
7632
  return false;
7227
7633
  };
@@ -7243,20 +7649,19 @@ var useExam = function useExam(props) {
7243
7649
  }))).then(function (res) {
7244
7650
  var _temp = function (_res$data, _res$data$data) {
7245
7651
  if (!((_res$data = res.data) !== null && _res$data !== void 0 && (_res$data$data = _res$data.data) !== null && _res$data$data !== void 0 && _res$data$data.id)) {
7246
- reactToastify.toast.error("Create exam failed");
7652
+ reactToastify.toast.error(t('create_exam_failed'));
7247
7653
  } else {
7248
7654
  var _res$data2, _res$data2$data;
7249
7655
  return Promise.resolve(apiCreateExamSession((_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : (_res$data2$data = _res$data2.data) === null || _res$data2$data === void 0 ? void 0 : _res$data2$data.id)).then(function () {
7250
7656
  setExamRequest(DEFAULT_EXAM_REQUEST);
7251
- reactToastify.toast.success("Create exam successfully");
7657
+ reactToastify.toast.success(t('create_exam_successfully'));
7252
7658
  });
7253
7659
  }
7254
7660
  }();
7255
7661
  if (_temp && _temp.then) return _temp.then(function () {});
7256
7662
  });
7257
7663
  }, function (error) {
7258
- var _error$response;
7259
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || "Create exam failed");
7664
+ reactToastify.toast.error(getErrorMessage(t, error));
7260
7665
  });
7261
7666
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
7262
7667
  } catch (e) {
@@ -7280,12 +7685,11 @@ var useExam = function useExam(props) {
7280
7685
  duration: minutesToTimeSpan(examRequest.duration || 0)
7281
7686
  }))).then(function () {
7282
7687
  handleCloseDialog();
7283
- reactToastify.toast.success("Save exam successfully");
7688
+ reactToastify.toast.success(t('save_exam_successfully'));
7284
7689
  isTeacher ? navigate('/teacher/exam-list') : navigate('/exams');
7285
7690
  });
7286
7691
  }, function (error) {
7287
- var _error$response2;
7288
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || "Save exam failed");
7692
+ reactToastify.toast.error(getErrorMessage(t, error));
7289
7693
  });
7290
7694
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
7291
7695
  } catch (e) {
@@ -7373,8 +7777,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7373
7777
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7374
7778
  });
7375
7779
  }, function (error) {
7376
- var _error$response, _error$response$data;
7377
- reactToastify.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.title) || "Couldn't update the chapter");
7780
+ reactToastify.toast.error(getErrorMessage(t, error));
7378
7781
  });
7379
7782
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
7380
7783
  } catch (e) {
@@ -7408,8 +7811,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7408
7811
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7409
7812
  });
7410
7813
  }, function (error) {
7411
- var _error$response2, _error$response2$data;
7412
- reactToastify.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.title) || "Couldn't add the article to the chapter");
7814
+ reactToastify.toast.error(getErrorMessage(t, error));
7413
7815
  });
7414
7816
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
7415
7817
  } catch (e) {
@@ -7428,8 +7830,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7428
7830
  callback === null || callback === void 0 ? void 0 : callback();
7429
7831
  });
7430
7832
  }, function (error) {
7431
- var _error$response3, _error$response3$data;
7432
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : (_error$response3$data = _error$response3.data) === null || _error$response3$data === void 0 ? void 0 : _error$response3$data.title) || "Couldn't delete the article from the chapter");
7833
+ reactToastify.toast.error(getErrorMessage(t, error));
7433
7834
  });
7434
7835
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
7435
7836
  } catch (e) {
@@ -7467,8 +7868,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7467
7868
  callback === null || callback === void 0 ? void 0 : callback();
7468
7869
  });
7469
7870
  }, function (error) {
7470
- var _error$response4, _error$response4$data;
7471
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : (_error$response4$data = _error$response4.data) === null || _error$response4$data === void 0 ? void 0 : _error$response4$data.title) || "Couldn't delete the subchapter from the chapter");
7871
+ reactToastify.toast.error(getErrorMessage(t, error));
7472
7872
  });
7473
7873
  return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
7474
7874
  } catch (e) {
@@ -7498,8 +7898,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7498
7898
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7499
7899
  });
7500
7900
  }, function (error) {
7501
- var _error$response5, _error$response5$data;
7502
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response5 = error.response) === null || _error$response5 === void 0 ? void 0 : (_error$response5$data = _error$response5.data) === null || _error$response5$data === void 0 ? void 0 : _error$response5$data.title) || "Couldn't update the article");
7901
+ reactToastify.toast.error(getErrorMessage(t, error));
7503
7902
  });
7504
7903
  return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
7505
7904
  } catch (e) {
@@ -7618,7 +8017,10 @@ var useTextbookDetail = function useTextbookDetail(props) {
7618
8017
  articleNumber: articleNumber,
7619
8018
  value: articles,
7620
8019
  name: "" + articleNumber,
7621
- confirmText: "Are you sure to delete article (" + articleNumber + ") from chapter (" + chapterName + ")"
8020
+ confirmText: t('are_you_sure_to_delete_article_from_chapter', {
8021
+ articleNumber: articleNumber,
8022
+ chapterName: chapterName
8023
+ })
7622
8024
  });
7623
8025
  };
7624
8026
  var handleOpenRemoveChapterConfirmDialog = function handleOpenRemoveChapterConfirmDialog(chapterName, chapterId, parentChapterId) {
@@ -7630,14 +8032,20 @@ var useTextbookDetail = function useTextbookDetail(props) {
7630
8032
  chapterId: chapterId,
7631
8033
  parentChapterId: parentChapterId,
7632
8034
  name: "" + chapterName,
7633
- confirmText: "Are you sure to delete subchapter (" + chapterName + ") from chapter (" + textbook.chapters[parentChapterIndex].name + ")"
8035
+ confirmText: t('are_you_sure_to_delete_subchapter_from_chapter', {
8036
+ subchapter: chapterName,
8037
+ chapter: textbook.chapters[parentChapterIndex].name
8038
+ })
7634
8039
  });
7635
8040
  } else {
7636
8041
  setSelectedDeleteItem({
7637
8042
  chapterId: chapterId,
7638
8043
  parentChapterId: parentChapterId,
7639
8044
  name: "" + chapterName,
7640
- confirmText: "Are you sure to delete chapter (" + chapterName + ") from textbook (" + textbook.name + ")"
8045
+ confirmText: t('are_you_sure_to_delete_chapter_from_textbook', {
8046
+ chapter: chapterName,
8047
+ textbook: textbook.name
8048
+ })
7641
8049
  });
7642
8050
  }
7643
8051
  };
@@ -7802,8 +8210,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7802
8210
  handleCloseChapterNameDialog();
7803
8211
  });
7804
8212
  }, function (error) {
7805
- var _error$response6, _error$response6$data;
7806
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response6 = error.response) === null || _error$response6 === void 0 ? void 0 : (_error$response6$data = _error$response6.data) === null || _error$response6$data === void 0 ? void 0 : _error$response6$data.title) || "Couldn't add new chapter to the textbook");
8213
+ reactToastify.toast.error(getErrorMessage(t, error));
7807
8214
  });
7808
8215
  return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10));
7809
8216
  } catch (e) {
@@ -7817,11 +8224,11 @@ var useTextbookDetail = function useTextbookDetail(props) {
7817
8224
  var validateTextbook = function validateTextbook() {
7818
8225
  var _textbook$subject;
7819
8226
  if (!textbook.name.trim().length) {
7820
- reactToastify.toast.error("Textbook name is required");
8227
+ reactToastify.toast.error(t('textbook_name_is_required'));
7821
8228
  return false;
7822
8229
  }
7823
8230
  if (!((_textbook$subject = textbook.subject) !== null && _textbook$subject !== void 0 && _textbook$subject.id)) {
7824
- reactToastify.toast.error("Textbook subject is required");
8231
+ reactToastify.toast.error(t('textbook_subject_is_required'));
7825
8232
  return false;
7826
8233
  }
7827
8234
  return true;
@@ -7841,7 +8248,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7841
8248
  dispatch(setLoading(true));
7842
8249
  var _temp14 = _catch(function () {
7843
8250
  function _temp13() {
7844
- reactToastify.toast.success((textbook.id ? "Update" : "Create") + " the textbook successfully");
8251
+ reactToastify.toast.success(t(textbook.id ? "update_the_textbook_successfully" : "create_the_textbook_successfully"));
7845
8252
  }
7846
8253
  var _temp12 = function () {
7847
8254
  if (textbook.id) {
@@ -7864,8 +8271,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7864
8271
  }();
7865
8272
  return _temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12);
7866
8273
  }, function (error) {
7867
- var _error$response7, _error$response7$data;
7868
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response7 = error.response) === null || _error$response7 === void 0 ? void 0 : (_error$response7$data = _error$response7.data) === null || _error$response7$data === void 0 ? void 0 : _error$response7$data.title) || "Couldn't " + (textbook.id ? "update" : "create") + " the textbook detail");
8274
+ reactToastify.toast.error(getErrorMessage(t, error));
7869
8275
  });
7870
8276
  return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14));
7871
8277
  } catch (e) {
@@ -7944,8 +8350,8 @@ var useTextbookDetail = function useTextbookDetail(props) {
7944
8350
  setNotFound(false);
7945
8351
  });
7946
8352
  }, function (error) {
7947
- var _error$response8, _error$response9, _error$response9$data;
7948
- if ((error === null || error === void 0 ? void 0 : (_error$response8 = error.response) === null || _error$response8 === void 0 ? void 0 : _error$response8.status) === 404) setNotFound(true);else reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response9 = error.response) === null || _error$response9 === void 0 ? void 0 : (_error$response9$data = _error$response9.data) === null || _error$response9$data === void 0 ? void 0 : _error$response9$data.title) || "Couldn't load the textbook detail");
8353
+ var _error$response;
8354
+ if ((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 404) setNotFound(true);else reactToastify.toast.error(getErrorMessage(t, error));
7949
8355
  });
7950
8356
  return Promise.resolve(_temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16));
7951
8357
  } catch (e) {
@@ -8188,7 +8594,7 @@ var ArticleDialog = function ArticleDialog(_ref) {
8188
8594
  article = _useState[0],
8189
8595
  setArticle = _useState[1];
8190
8596
  var handleSubmit = function handleSubmit() {
8191
- if (!article.categoryId) reactToastify.toast.error("Category is required");
8597
+ if (!article.categoryId) reactToastify.toast.error(t('category_is_required'));
8192
8598
  onSubmitForm(article);
8193
8599
  };
8194
8600
  var handleChangeQuestionCount = function handleChangeQuestionCount(_ref2) {
@@ -8375,6 +8781,8 @@ var SubjectSelector = function SubjectSelector(_ref) {
8375
8781
  var _state$common2, _state$common2$user;
8376
8782
  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.roles) || [];
8377
8783
  }).includes(exports.Role.Admin) && !isDomain;
8784
+ var _useTranslation = reactI18next.useTranslation(),
8785
+ t = _useTranslation.t;
8378
8786
  var loadData = React.useCallback(function () {
8379
8787
  try {
8380
8788
  var _temp2 = function _temp2() {
@@ -8392,9 +8800,8 @@ var SubjectSelector = function SubjectSelector(_ref) {
8392
8800
  items = _res$data$items === void 0 ? [] : _res$data$items;
8393
8801
  setSubjects(items);
8394
8802
  });
8395
- }, function (err) {
8396
- var _err$response, _err$response$data;
8397
- reactToastify.toast.error(((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message);
8803
+ }, function (error) {
8804
+ reactToastify.toast.error(getErrorMessage(t, error));
8398
8805
  });
8399
8806
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
8400
8807
  } catch (e) {
@@ -8851,6 +9258,7 @@ var CreateExamDrawer = function CreateExamDrawer(props) {
8851
9258
 
8852
9259
  var TextbookViewDetail = function TextbookViewDetail(props) {
8853
9260
  var _textbook$chapters;
9261
+ var navigate = props.navigate;
8854
9262
  var _useTextbookDetail = useTextbookDetail(props),
8855
9263
  id = _useTextbookDetail.id,
8856
9264
  t = _useTextbookDetail.t,
@@ -8898,7 +9306,9 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
8898
9306
  subjectId: id ? textbookSubject === null || textbookSubject === void 0 ? void 0 : textbookSubject.value : undefined
8899
9307
  }),
8900
9308
  categoryOptions = _useCategorySelect.categoryOptions;
8901
- if (isNotFound) return React__default.createElement(NotFound, null);
9309
+ if (isNotFound) return React__default.createElement(NotFound, {
9310
+ history: navigate
9311
+ });
8902
9312
  return React__default.createElement(material.Container, {
8903
9313
  maxWidth: "xl",
8904
9314
  className: "bg-white py-5 p-4 rounded-4 h-100 d-flex flex-column"
@@ -9056,31 +9466,25 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9056
9466
  if (isAuthPage === void 0) {
9057
9467
  isAuthPage = true;
9058
9468
  }
9059
- var searchParams = new URLSearchParams(window.location.search);
9469
+ var search = window.location.search;
9060
9470
  var user = reactRedux.useSelector(function (state) {
9061
9471
  var _state$common;
9062
9472
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
9063
9473
  });
9064
- var language = reactRedux.useSelector(function (state) {
9065
- var _state$common2;
9066
- return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
9067
- });
9068
- var initialAcademySearchParam = function initialAcademySearchParam() {
9474
+ var _ref = user || {},
9475
+ email = _ref.email,
9476
+ academyDomain = _ref.academyDomain;
9477
+ var pathname = window.location.pathname;
9478
+ var changeAcademySearchParams = function changeAcademySearchParams() {
9479
+ var searchParams = new URLSearchParams(search);
9069
9480
  var paramAcademyDomain = searchParams.get("domain");
9070
- var paramLang = searchParams.get("lang");
9071
9481
  var domain = getAcademyDomain();
9072
- var pathname = window.location.pathname.toLowerCase();
9073
- var isUpdateSearchParam = false;
9074
- if ((!paramLang || paramLang.toLowerCase() !== language) && language) {
9075
- searchParams.set("lang", language);
9076
- isUpdateSearchParam = true;
9077
- }
9078
- if (!!user !== isAuthPage) return;
9079
- var academyDomain = user === null || user === void 0 ? void 0 : user.academyDomain;
9482
+ if (!!email !== isAuthPage) return;
9483
+ var isSuperUrl = superUrls.some(function (i) {
9484
+ return pathname.startsWith(i);
9485
+ });
9080
9486
  if (!academyDomain) {
9081
- if (!superUrls.some(function (i) {
9082
- return pathname.startsWith(i);
9083
- })) {
9487
+ if (!isSuperUrl) {
9084
9488
  !paramAcademyDomain && domain && searchParams.set("domain", domain);
9085
9489
  pushTo(history, {
9086
9490
  pathname: homeUrl,
@@ -9096,9 +9500,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9096
9500
  return;
9097
9501
  }
9098
9502
  } else {
9099
- if (superUrls.some(function (i) {
9100
- return pathname.startsWith(i);
9101
- })) {
9503
+ if (isSuperUrl) {
9102
9504
  searchParams["delete"]("domain");
9103
9505
  pushTo(history, {
9104
9506
  pathname: homeAcademyUrl,
@@ -9111,20 +9513,17 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9111
9513
  return;
9112
9514
  }
9113
9515
  if (!paramAcademyDomain) {
9114
- !paramAcademyDomain && searchParams.set("domain", academyDomain);
9516
+ searchParams.set("domain", academyDomain);
9115
9517
  pushTo(history, _extends({}, window.location, {
9116
9518
  search: searchParams.toString()
9117
9519
  }));
9118
9520
  return;
9119
9521
  }
9120
9522
  }
9121
- if (isUpdateSearchParam) pushTo(history, _extends({}, window.location, {
9122
- search: searchParams.toString()
9123
- }));
9124
9523
  };
9125
9524
  React.useEffect(function () {
9126
- initialAcademySearchParam();
9127
- }, [window.location.pathname, window.location.search, user === null || user === void 0 ? void 0 : user.academyDomain, language]);
9525
+ changeAcademySearchParams();
9526
+ }, [pathname, search, isAuthPage, email, academyDomain]);
9128
9527
  };
9129
9528
 
9130
9529
  var DEFAULT_PAGING_RESPONSE = {
@@ -9150,6 +9549,8 @@ var useList = function useList(fetchData, defaultQuery) {
9150
9549
  setSelectedItem = _useState4[1];
9151
9550
  var textSearchRef = React.useRef(null);
9152
9551
  var isFirstLoadRef = React.useRef(true);
9552
+ var _useTranslation = reactI18next.useTranslation(),
9553
+ t = _useTranslation.t;
9153
9554
  var handleChangeSelectedItem = function handleChangeSelectedItem(item) {
9154
9555
  setSelectedItem(item);
9155
9556
  };
@@ -9176,10 +9577,9 @@ var useList = function useList(fetchData, defaultQuery) {
9176
9577
  setData(items);
9177
9578
  });
9178
9579
  }, function (error) {
9179
- var _error$response, _error$response$data;
9180
9580
  setPaging(DEFAULT_PAGING_RESPONSE);
9181
9581
  setData([]);
9182
- reactToastify.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.title) || "Get data failed");
9582
+ reactToastify.toast.error(getErrorMessage(t, error));
9183
9583
  });
9184
9584
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
9185
9585
  } catch (e) {
@@ -9264,6 +9664,8 @@ var useTextbookList = function useTextbookList(props) {
9264
9664
  calcOrderNumber = _useList.calcOrderNumber,
9265
9665
  handleChangeSelectedItem = _useList.handleChangeSelectedItem,
9266
9666
  getData = _useList.getData;
9667
+ var _useTranslation = reactI18next.useTranslation(),
9668
+ t = _useTranslation.t;
9267
9669
  var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
9268
9670
  var dispatch = reactRedux.useDispatch();
9269
9671
  var handleViewTextbook = function handleViewTextbook(id) {
@@ -9301,8 +9703,7 @@ var useTextbookList = function useTextbookList(props) {
9301
9703
  });
9302
9704
  });
9303
9705
  }, function (error) {
9304
- var _error$response, _error$response$data;
9305
- reactToastify.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.title) || "Textbook deleted failed");
9706
+ reactToastify.toast.error(getErrorMessage(t, error));
9306
9707
  });
9307
9708
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
9308
9709
  } catch (e) {
@@ -10501,8 +10902,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10501
10902
  setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
10502
10903
  });
10503
10904
  }, function (error) {
10504
- var _error$response;
10505
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error.message);
10905
+ reactToastify.toast.error(getErrorMessage(t, error));
10506
10906
  });
10507
10907
  return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
10508
10908
  };
@@ -10538,8 +10938,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10538
10938
  setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
10539
10939
  });
10540
10940
  }, function (error) {
10541
- var _error$response2;
10542
- reactToastify.toast.error((error === null || error === void 0 ? void 0 : (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error.message);
10941
+ reactToastify.toast.error(getErrorMessage(t, error));
10543
10942
  });
10544
10943
  return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
10545
10944
  };
@@ -10895,7 +11294,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10895
11294
  console.log({
10896
11295
  error: error
10897
11296
  });
10898
- reactToastify.toast.error("Print pdf failure!");
11297
+ reactToastify.toast.error(getErrorMessage(t, error));
10899
11298
  });
10900
11299
  return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23));
10901
11300
  } catch (e) {
@@ -12195,18 +12594,21 @@ var useMyAnswer = function useMyAnswer() {
12195
12594
  };
12196
12595
  };
12197
12596
 
12198
- var useCreateQuestionDialog = function useCreateQuestionDialog() {
12597
+ var useCreateQuestionDialog = function useCreateQuestionDialog(_ref) {
12598
+ var questions = _ref.questions;
12199
12599
  var _useState = React.useState(false),
12200
12600
  openDialog = _useState[0],
12201
12601
  setOpenDialog = _useState[1];
12202
12602
  var dispatch = reactRedux.useDispatch();
12603
+ var _useTranslation = reactI18next.useTranslation(),
12604
+ t = _useTranslation.t;
12203
12605
  var toggleDialog = function toggleDialog() {
12204
12606
  setOpenDialog(!openDialog);
12205
12607
  };
12206
- var handleCreateQuestion = function handleCreateQuestion(_ref) {
12207
- var content = _ref.content,
12208
- examSessionId = _ref.examSessionId,
12209
- questionId = _ref.questionId;
12608
+ var handleCreateQuestion = function handleCreateQuestion(_ref2) {
12609
+ var content = _ref2.content,
12610
+ examSessionId = _ref2.examSessionId,
12611
+ questionId = _ref2.questionId;
12210
12612
  try {
12211
12613
  var _temp2 = function _temp2() {
12212
12614
  dispatch(setLoading(false));
@@ -12221,18 +12623,31 @@ var useCreateQuestionDialog = function useCreateQuestionDialog() {
12221
12623
  toggleDialog();
12222
12624
  });
12223
12625
  }, function (error) {
12224
- var _error$response, _error$response$data;
12225
- reactToastify.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.title) || "Fail to Create Question!");
12626
+ reactToastify.toast.error(getErrorMessage(t, error));
12226
12627
  });
12227
12628
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
12228
12629
  } catch (e) {
12229
12630
  return Promise.reject(e);
12230
12631
  }
12231
12632
  };
12633
+ var questionOptions = React.useMemo(function () {
12634
+ if (!questions) return [];
12635
+ return questions.map(function (_ref3) {
12636
+ var id = _ref3.id,
12637
+ questionOrder = _ref3.questionOrder;
12638
+ return {
12639
+ label: t("question_order", {
12640
+ number: questionOrder + 1
12641
+ }),
12642
+ value: id
12643
+ };
12644
+ });
12645
+ }, [questions]);
12232
12646
  return {
12233
12647
  openCreateQuestionDialog: openDialog,
12234
12648
  toggleCreateQuestion: toggleDialog,
12235
- handleCreateQuestion: handleCreateQuestion
12649
+ handleCreateQuestion: handleCreateQuestion,
12650
+ questionOptions: questionOptions
12236
12651
  };
12237
12652
  };
12238
12653
 
@@ -12281,7 +12696,7 @@ function CreateNewQuestionDialog(_ref) {
12281
12696
  toggleCreateQuestion = _ref.toggleCreateQuestion,
12282
12697
  examSessionId = _ref.examSessionId,
12283
12698
  questionOrderSelected = _ref.questionOrderSelected,
12284
- questions = _ref.questions;
12699
+ questionOptions = _ref.questionOptions;
12285
12700
  var _useTranslation = reactI18next.useTranslation(),
12286
12701
  t = _useTranslation.t;
12287
12702
  return React__default.createElement(material.Dialog, {
@@ -12327,7 +12742,8 @@ function CreateNewQuestionDialog(_ref) {
12327
12742
  }));
12328
12743
  }
12329
12744
  }, function (_ref2) {
12330
- var errors = _ref2.errors;
12745
+ var errors = _ref2.errors,
12746
+ setFieldValue = _ref2.setFieldValue;
12331
12747
  return React__default.createElement(formik.Form, null, React__default.createElement(material.Box, {
12332
12748
  display: "flex",
12333
12749
  flexDirection: "column",
@@ -12337,20 +12753,22 @@ function CreateNewQuestionDialog(_ref) {
12337
12753
  htmlFor: "questions",
12338
12754
  className: styles['form-label'] + " " + styles$4['form-label-dialog']
12339
12755
  }, t('questions_to_ask')), React__default.createElement(formik.Field, {
12340
- as: "select",
12341
12756
  id: "questions",
12342
12757
  name: "questionId",
12343
- style: {
12344
- width: "100%"
12345
- },
12346
- className: "" + styles['form-select']
12347
- }, questions === null || questions === void 0 ? void 0 : questions.map(function (question) {
12348
- return React__default.createElement("option", {
12349
- value: question === null || question === void 0 ? void 0 : question.id
12350
- }, t('question_order', {
12351
- number: (question === null || question === void 0 ? void 0 : question.questionOrder) + 1
12352
- }));
12353
- }))), React__default.createElement(material.Stack, null, React__default.createElement("label", {
12758
+ render: function render(_ref3) {
12759
+ var field = _ref3.field;
12760
+ return React__default.createElement(CustomSelect, Object.assign({}, field, {
12761
+ id: "questions",
12762
+ menuPlacement: "bottom",
12763
+ options: questionOptions,
12764
+ onChange: function onChange(_ref4) {
12765
+ var value = _ref4.value;
12766
+ return setFieldValue("questionId", value);
12767
+ },
12768
+ isClearable: false
12769
+ }));
12770
+ }
12771
+ })), React__default.createElement(material.Stack, null, React__default.createElement("label", {
12354
12772
  htmlFor: "content-question",
12355
12773
  className: styles['form-label'] + " " + styles$4['form-label-dialog']
12356
12774
  }, t('question_content')), React__default.createElement(material.Box, {
@@ -12418,10 +12836,13 @@ function MyAnswer(_ref) {
12418
12836
  categories = _ref.categories,
12419
12837
  isStudent = _ref.isStudent,
12420
12838
  isPrint = _ref.isPrint;
12421
- var _useCreateQuestionDia = useCreateQuestionDialog(),
12839
+ var _useCreateQuestionDia = useCreateQuestionDialog({
12840
+ questions: data.questions
12841
+ }),
12422
12842
  handleCreateQuestion = _useCreateQuestionDia.handleCreateQuestion,
12423
12843
  openCreateQuestionDialog = _useCreateQuestionDia.openCreateQuestionDialog,
12424
- toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion;
12844
+ toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion,
12845
+ questionOptions = _useCreateQuestionDia.questionOptions;
12425
12846
  var _useMyAnswer = useMyAnswer(),
12426
12847
  isOpenTime = _useMyAnswer.isOpenTime,
12427
12848
  handleSelectQuestionOrder = _useMyAnswer.handleSelectQuestionOrder,
@@ -12635,7 +13056,7 @@ function MyAnswer(_ref) {
12635
13056
  className: styles$4["contentMyAnswer"]
12636
13057
  }, isPrint ? renderPrintQuestions(item.questions) : renderQuestions(item.questions)));
12637
13058
  }), React__default.createElement(CreateNewQuestionDialog, {
12638
- questions: data === null || data === void 0 ? void 0 : data.questions,
13059
+ questionOptions: questionOptions,
12639
13060
  questionOrderSelected: questionOrderSelected,
12640
13061
  examSessionId: data === null || data === void 0 ? void 0 : data.examSessionId,
12641
13062
  handleCreateQuestion: handleCreateQuestion,
@@ -13178,6 +13599,8 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
13178
13599
  openDialog = _useState[0],
13179
13600
  setOpenDialog = _useState[1];
13180
13601
  var dispatch = reactRedux.useDispatch();
13602
+ var _useTranslation = reactI18next.useTranslation(),
13603
+ t = _useTranslation.t;
13181
13604
  var toggleDialog = function toggleDialog() {
13182
13605
  setOpenDialog(!openDialog);
13183
13606
  };
@@ -13197,8 +13620,7 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
13197
13620
  toggleDialog();
13198
13621
  });
13199
13622
  }, function (error) {
13200
- var _error$response, _error$response$data;
13201
- reactToastify.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.title) || "Fail to Create Question!");
13623
+ reactToastify.toast.error(getErrorMessage(t, error));
13202
13624
  });
13203
13625
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
13204
13626
  } catch (e) {
@@ -13963,7 +14385,7 @@ var useLogin$2 = function useLogin(_ref) {
13963
14385
  });
13964
14386
  }, function (error) {
13965
14387
  console.log(error);
13966
- reactToastify.toast.error(t('request_login_fail'));
14388
+ reactToastify.toast.error(getErrorMessage(t, error, t('request_login_fail')));
13967
14389
  }));
13968
14390
  } catch (e) {
13969
14391
  return Promise.reject(e);
@@ -13977,7 +14399,7 @@ var useLogin$2 = function useLogin(_ref) {
13977
14399
  if (redirectUrl) pushTo(history, redirectUrl);
13978
14400
  };
13979
14401
  React.useEffect(function () {
13980
- var token = getAccessToken$1();
14402
+ var token = getAccessToken();
13981
14403
  if (!!token) pushTo(history, "/");
13982
14404
  }, []);
13983
14405
  return {
@@ -13995,7 +14417,7 @@ function SignIn(_ref) {
13995
14417
  homeAcademyUrl = _ref.homeAcademyUrl,
13996
14418
  homeUrl = _ref.homeUrl,
13997
14419
  registerUrl = _ref.registerUrl;
13998
- useLanguage();
14420
+ useLanguage(history);
13999
14421
  var _useTranslation = reactI18next.useTranslation(),
14000
14422
  t = _useTranslation.t;
14001
14423
  var _useLoginWithPassword = useLogin$2({
@@ -14451,7 +14873,10 @@ var Header = function Header(_ref) {
14451
14873
  width: "100%",
14452
14874
  display: "flex",
14453
14875
  flexDirection: "row",
14454
- gap: "24px",
14876
+ gap: {
14877
+ xs: "16",
14878
+ md: "24"
14879
+ },
14455
14880
  className: styles["tabBox"] + " " + styles["headers"]
14456
14881
  }, React__default.createElement(material.Stack, {
14457
14882
  padding: "10px 0",
@@ -14512,7 +14937,23 @@ var Header = function Header(_ref) {
14512
14937
  })), React__default.createElement(material.Stack, {
14513
14938
  direction: "row",
14514
14939
  alignItems: "center"
14515
- }, React__default.createElement(reactRouterDom.Link, {
14940
+ }, React__default.createElement(material.Typography, {
14941
+ color: styles.gray_700,
14942
+ className: "fw-bold me-3 text-nowrap flex-shrink-1",
14943
+ sx: {
14944
+ minWidth: "60px",
14945
+ maxWidth: {
14946
+ md: "100px",
14947
+ xs: "60px"
14948
+ },
14949
+ fontSize: {
14950
+ md: "16px",
14951
+ xs: "14px"
14952
+ },
14953
+ overflow: "hidden",
14954
+ textOverflow: "ellipsis"
14955
+ }
14956
+ }, user === null || user === void 0 ? void 0 : user.fullName), React__default.createElement(reactRouterDom.Link, {
14516
14957
  "aria-current": "page",
14517
14958
  to: homeRoute.path,
14518
14959
  className: "border-none"
@@ -14527,7 +14968,9 @@ var Header = function Header(_ref) {
14527
14968
  }, React__default.createElement(singleLogo, null))), React__default.createElement(material.Stack, {
14528
14969
  className: "me-2",
14529
14970
  display: "none"
14530
- }, React__default.createElement(TheLanguageDropdown, null))));
14971
+ }, React__default.createElement(TheLanguageDropdown, {
14972
+ history: history
14973
+ }))));
14531
14974
  };
14532
14975
 
14533
14976
  var ACADEMY_URL$1 = BASE_URL + "/api/academy";
@@ -14549,6 +14992,8 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14549
14992
  var _state$common, _state$common$user;
14550
14993
  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;
14551
14994
  });
14995
+ var _useTranslation = reactI18next.useTranslation(),
14996
+ t = _useTranslation.t;
14552
14997
  var getAcademies = function getAcademies() {
14553
14998
  try {
14554
14999
  var _temp2 = function _temp2() {
@@ -14560,8 +15005,7 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14560
15005
  setAcademyList(res.data.items || []);
14561
15006
  });
14562
15007
  }, function (error) {
14563
- var _error$response, _error$response$data;
14564
- reactToastify.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");
15008
+ reactToastify.toast.error(getErrorMessage(t, error));
14565
15009
  });
14566
15010
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
14567
15011
  } catch (e) {
@@ -14587,8 +15031,7 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14587
15031
  return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {});
14588
15032
  });
14589
15033
  }, function (error) {
14590
- var _error$response2, _error$response2$data;
14591
- reactToastify.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");
15034
+ reactToastify.toast.error(getErrorMessage(t, error));
14592
15035
  });
14593
15036
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
14594
15037
  } catch (e) {
@@ -14757,7 +15200,7 @@ exports.canAccessRoute = canAccess;
14757
15200
  exports.diffFromNow = diffFromNow;
14758
15201
  exports.formatTime = formatTime;
14759
15202
  exports.getAcademyDomain = getAcademyDomain;
14760
- exports.getAccessToken = getAccessToken$1;
15203
+ exports.getAccessToken = getAccessToken;
14761
15204
  exports.getErrorMessage = getErrorMessage;
14762
15205
  exports.i18n = i18n;
14763
15206
  exports.minutesToTimeSpan = minutesToTimeSpan;