touchstudy-core 0.1.59 → 0.1.61

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
@@ -79,27 +79,6 @@ var DATE_MIN_VALUE = "0001-01-01T00:00:00+00:00";
79
79
  var DATE_TIME_MIN_VALUE = "0001-01-01T00:00:00";
80
80
  var EXAM_CHANNEL = "presence-exam-channel";
81
81
  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
82
  var encodeParams = function encodeParams(params) {
104
83
  return Object.keys(params).filter(function (key) {
105
84
  return params[key] || params[key] === 0 || params[key] === false;
@@ -382,6 +361,22 @@ function _finally(body, finalizer) {
382
361
  return finalizer();
383
362
  }
384
363
 
364
+ var getAcademyDomain = function getAcademyDomain() {
365
+ try {
366
+ return localStorage.getItem(ACADEMY_DOMAIN);
367
+ } catch (err) {
368
+ return null;
369
+ }
370
+ };
371
+
372
+ var getAccessToken = (function () {
373
+ try {
374
+ return localStorage.getItem(ACCESS_TOKEN);
375
+ } catch (err) {
376
+ return null;
377
+ }
378
+ });
379
+
385
380
  var api = axios.create({
386
381
  baseURL: BASE_URL,
387
382
  timeout: 0,
@@ -511,12 +506,20 @@ var getErrorMessage = function getErrorMessage(t, error, defaultErrorMessage) {
511
506
  var _error$response, _error$response$data, _error$response2, _error$response3, _error$response3$data;
512
507
  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
508
  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);
514
- if (typeof errorMessage === "string") return errorMessage;
509
+ if (typeof errorMessage === "string") return decodeURIComponent(errorMessage);
515
510
  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);
516
511
  if (typeof errorMessage === "string") return errorMessage;
517
512
  return defaultErrorMessage || t(DefaultErrorMessage);
518
513
  };
519
514
 
515
+ var getRedirectUrl = function getRedirectUrl() {
516
+ try {
517
+ return localStorage.getItem(REDIRECT_URL);
518
+ } catch (err) {
519
+ return undefined;
520
+ }
521
+ };
522
+
520
523
  var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl) {
521
524
  var dispatch = reactRedux.useDispatch();
522
525
  var _useTranslation = reactI18next.useTranslation(),
@@ -599,7 +602,9 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
599
602
  var needToRegister = isStudent && isFirstLogin && isAcademy;
600
603
  var redirectUrl = getRedirectUrl();
601
604
  if (!redirectUrl) redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
602
- redirectLoginUser(user, token, redirectUrl);
605
+ redirectLoginUser(_extends({}, user, {
606
+ isFirstLogin: isFirstLogin
607
+ }), token, redirectUrl);
603
608
  });
604
609
  }, function (error) {
605
610
  alert(getErrorMessage(t, error));
@@ -1000,14 +1005,6 @@ var BlockLogin = function BlockLogin(_ref) {
1000
1005
  })));
1001
1006
  };
1002
1007
 
1003
- var getAccessToken$1 = (function () {
1004
- try {
1005
- return localStorage.getItem(ACCESS_TOKEN);
1006
- } catch (err) {
1007
- return null;
1008
- }
1009
- });
1010
-
1011
1008
  var defaultInfo = {
1012
1009
  email: "",
1013
1010
  password: "",
@@ -1037,7 +1034,7 @@ var useLogin$1 = function useLogin(history) {
1037
1034
  !!gapiScript.gapi && gapiScript.gapi.load("client:auth2", start);
1038
1035
  }, [gapiScript.gapi]);
1039
1036
  React.useEffect(function () {
1040
- var token = getAccessToken$1();
1037
+ var token = getAccessToken();
1041
1038
  if (!!token) pushTo(history, "/");
1042
1039
  }, []);
1043
1040
  return {
@@ -1323,6 +1320,7 @@ var TITLE = "Not found";
1323
1320
  var NotFound = function NotFound() {
1324
1321
  var _useTranslation = reactI18next.useTranslation(),
1325
1322
  t = _useTranslation.t;
1323
+ useLanguage();
1326
1324
  React.useEffect(function () {
1327
1325
  document.title = TITLE;
1328
1326
  });
@@ -1391,12 +1389,8 @@ var switchAcademy = function switchAcademy(academyId) {
1391
1389
  return api.post(ACADEMY_URL + "/switch-academy?academyId=" + academyId);
1392
1390
  };
1393
1391
 
1394
- var LayoutContext = function LayoutContext(_ref) {
1392
+ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1395
1393
  var _currentPusher$connec2;
1396
- var children = _ref.children,
1397
- role = _ref.role,
1398
- _ref$pusherRegisterUr = _ref.pusherRegisterUrls,
1399
- pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr;
1400
1394
  var _useGoogleSignOut = useGoogleSignOut({}),
1401
1395
  handleSignOut = _useGoogleSignOut.handleSignOut;
1402
1396
  var _useTranslation = reactI18next.useTranslation(),
@@ -1447,7 +1441,10 @@ var LayoutContext = function LayoutContext(_ref) {
1447
1441
  var checkRoleUser = React.useCallback(function () {
1448
1442
  if (!user) return;
1449
1443
  if (!roles.includes(role) && !!academyDomain) {
1450
- alert(user.email + " not allow to register " + role);
1444
+ alert(t("user_not_allow_to_register_role", {
1445
+ user: user.email,
1446
+ role: role
1447
+ }));
1451
1448
  resetAuth();
1452
1449
  }
1453
1450
  }, [role, JSON.stringify(user)]);
@@ -1482,9 +1479,10 @@ var LayoutContext = function LayoutContext(_ref) {
1482
1479
  }
1483
1480
  };
1484
1481
  var registerPusher = React.useCallback(function () {
1482
+ if (!academyDomain) return;
1485
1483
  if (pusherRegisterUrls.includes(pathname.toLocaleLowerCase())) {
1486
1484
  var _currentPusher$connec;
1487
- if (academyDomain && academyDomain !== (concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain) && isReadyRegisterPusher) {
1485
+ if (academyDomain !== (concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain) && isReadyRegisterPusher) {
1488
1486
  var _headers;
1489
1487
  if (currentPusher) {
1490
1488
  currentPusher.disconnect();
@@ -1540,6 +1538,14 @@ var LayoutContext = function LayoutContext(_ref) {
1540
1538
  }
1541
1539
  };
1542
1540
  }, [registerPusher]);
1541
+ };
1542
+
1543
+ var LayoutContext = function LayoutContext(_ref) {
1544
+ var children = _ref.children,
1545
+ role = _ref.role,
1546
+ _ref$pusherRegisterUr = _ref.pusherRegisterUrls,
1547
+ pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr;
1548
+ useLayoutContext(role, pusherRegisterUrls);
1543
1549
  return React__default.createElement(React.Fragment, null, children);
1544
1550
  };
1545
1551
 
@@ -1875,7 +1881,7 @@ var number_problem = "{{number}}문제";
1875
1881
  var problems = "문제";
1876
1882
  var problem_solving_time = "문제풀이 시간";
1877
1883
  var minutes = "분";
1878
- var correct_rate = "정확한 비율";
1884
+ var correct_rate = "정답률";
1879
1885
  var title = "제목";
1880
1886
  var duration = "시험 시간";
1881
1887
  var answer_count = "답변 수";
@@ -2186,7 +2192,7 @@ var password = "비밀번호";
2186
2192
  var email_address = "이메일 주소";
2187
2193
  var please_enter_your_question = "질문할 내용을 입력해주세요.";
2188
2194
  var test_selection = "테스트 선택";
2189
- var half_selection = "절반 선택";
2195
+ var half_selection = " 선택";
2190
2196
  var choose_a_problem = "문제를 선택하세요";
2191
2197
  var question_content = "질문 내용";
2192
2198
  var questions_to_ask = "질문할 문제";
@@ -2269,6 +2275,7 @@ var export_csv = "CSV 내보내기";
2269
2275
  var select_type = "유형 선택";
2270
2276
  var no_message = "메시지 없음";
2271
2277
  var this_is_the_guidance_text = "안내 텍스트입니다.";
2278
+ var the_page_you_are_looking_for_was_not_found = "찾으시는 페이지를 찾을 수 없습니다.";
2272
2279
  var oops = "이런! 당신이졌다.";
2273
2280
  var please_enter = "들어 오세요...";
2274
2281
  var hint = "힌트";
@@ -2328,6 +2335,67 @@ var the_code_has_been_copied_to_your_clipboard = "코드가 클립보드에 복
2328
2335
  var an_unexpected_error_has_occurred = "예상치 못한 오류가 발생했습니다";
2329
2336
  var select_roles = "역할 선택";
2330
2337
  var no_academy_selected = "선택한 아카데미 없음";
2338
+ var delete_data_successfully = "데이터를 성공적으로 삭제했습니다.";
2339
+ var update_academy_successfully = "아카데미를 성공적으로 업데이트했습니다";
2340
+ var create_academy_successfully = "아카데미를 성공적으로 만들었습니다";
2341
+ var update_article_successfully = "기사를 업데이트했습니다.";
2342
+ var create_article_successfully = "기사를 성공적으로 작성했습니다.";
2343
+ var update_category_successfully = "카테고리를 업데이트했습니다.";
2344
+ var create_category_successfully = "카테고리가 성공적으로 생성되었습니다.";
2345
+ var please_fill_in_all_fields_for_this = "이번 {{day}}에 대한 모든 필드를 작성해 주세요.";
2346
+ var duplicate_weekly_day = "주간 일이 중복됩니다.";
2347
+ var remove_lesson_failed = "강의 삭제 실패";
2348
+ var update_lesson_successfully = "강의를 성공적으로 업데이트했습니다.";
2349
+ var create_lesson_successfully = "수업을 성공적으로 만들었습니다.";
2350
+ var update_class_successfully = "수업을 업데이트했습니다.";
2351
+ var create_class_successfully = "수업을 성공적으로 만들었습니다";
2352
+ var start_times_and_end_times_are_required = "시작 시간과 종료 시간은 필수 항목입니다.";
2353
+ var start_times_must_be_less_than_end_time = "시작 시간은 종료 시간보다 이전이어야 합니다.";
2354
+ var remove_student_successfully = "학생을 성공적으로 제거했습니다.";
2355
+ var remove_teacher_successfully = "교사를 삭제했습니다.";
2356
+ var update_notification_successfully = "업데이트 알림이 성공적으로 완료되었습니다.";
2357
+ var create_notification_successfully = "알림이 성공적으로 생성되었습니다.";
2358
+ var please_select_category = "카테고리를 선택해주세요";
2359
+ var update_social_successfully = "소셜 업데이트를 성공적으로 완료했습니다.";
2360
+ var import_csv_successfully = "CSV를 성공적으로 가져왔습니다.";
2361
+ var download_successfully = "성공적으로 다운로드";
2362
+ var file_type_not_valid = "파일 형식이 잘못되었습니다! csv 파일을 업로드해주세요.";
2363
+ var upload_image_successfully = "이미지를 성공적으로 업로드했습니다.";
2364
+ var category_is_required = "카테고리는 필수 항목입니다.";
2365
+ var textbook_name_is_required = "교과서 이름이 필요합니다";
2366
+ var textbook_subject_is_required = "교과서 과목은 필수입니다";
2367
+ var update_the_textbook_successfully = "교과서를 성공적으로 업데이트했습니다.";
2368
+ var create_the_textbook_successfully = "교과서를 성공적으로 만들었습니다.";
2369
+ var finish_exam_successful = "시험을 성공적으로 마쳤습니다";
2370
+ var you_has_been_kicked_out = "당신은 쫓겨났습니다";
2371
+ var the_teacher_has_closed_or_deleted_the_exam = "선생님이 시험을 종료했거나 삭제했습니다. 나중에 다시 시도해 주세요.";
2372
+ var check_in_lesson_successfully = "수업 체크인 성공";
2373
+ var update_attendance_status_successfully = "출석 상태를 성공적으로 업데이트했습니다.";
2374
+ var save_exam_successfully = "시험을 성공적으로 저장했습니다.";
2375
+ var kick_out_student_successful = "학생 퇴출 성공!";
2376
+ var please_select_an_exam_subject = "시험과목을 선택해주세요";
2377
+ var please_enter_exam_title = "시험 제목을 입력해주세요";
2378
+ var exam_required_at_least_one_question = "시험에는 하나 이상의 질문이 필요합니다.";
2379
+ var create_exam_failed = "시험 생성 실패";
2380
+ var please_select_category_for_article = "기사 {{article}}의 카테고리를 선택하세요.";
2381
+ var placeholder_student_selector = "검색하려면 2자 이상 입력하세요.";
2382
+ var error_uploading_file = "파일을 업로드하는 중 오류가 발생했습니다.";
2383
+ var remove_lesson_successfully = "강의를 성공적으로 삭제했습니다.";
2384
+ var user_not_allow_to_register_role = "{{user}}이(가) {{role}} 등록을 허용하지 않습니다.";
2385
+ var are_you_sure_to_delete_article_from_chapter = "{{chapterName}} 장에서 기사 {{articleNumber}}을(를) 삭제하시겠습니까?";
2386
+ var are_you_sure_to_delete_subchapter_from_chapter = "{{chapter}} 장에서 {{subchapter}} 하위 장을 삭제하시겠습니까?";
2387
+ var are_you_sure_to_delete_chapter_from_textbook = "교과서 {{chapter}}에서 {{textbook}}장을 삭제하시겠습니까?";
2388
+ var do_you_want_to_quit_your_exam = "당신의 시험을 종료하시겠습니까?";
2389
+ var home = "집";
2390
+ var profile = "프로필";
2391
+ var settings = "설정";
2392
+ var sign_up_school_information = "회원가입 - 학교정보";
2393
+ var korean_high_school = "한국 고등학교";
2394
+ var sign_up_student_information = "회원가입 - 학생정보";
2395
+ var placeholder_student_name = "김ㅇㅇ";
2396
+ var student_name_is_required = "학생 이름은 필수입니다!";
2397
+ var the_parent_phone_is_not_valid = "부모 전화번호가 유효하지 않습니다.";
2398
+ var the_number_must_be_11_number_or_10_number = "숫자는 11자리 또는 10자리여야 합니다.";
2331
2399
  var lang_ko = {
2332
2400
  problem_solving: problem_solving,
2333
2401
  my_story: my_story,
@@ -2782,7 +2850,7 @@ var lang_ko = {
2782
2850
  select_type: select_type,
2783
2851
  no_message: no_message,
2784
2852
  this_is_the_guidance_text: this_is_the_guidance_text,
2785
- "the_page_you_are_looking_for_was_not_found.": "찾으시는 페이지를 찾을 수 없습니다.",
2853
+ the_page_you_are_looking_for_was_not_found: the_page_you_are_looking_for_was_not_found,
2786
2854
  oops: oops,
2787
2855
  please_enter: please_enter,
2788
2856
  hint: hint,
@@ -2842,7 +2910,68 @@ var lang_ko = {
2842
2910
  the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard,
2843
2911
  an_unexpected_error_has_occurred: an_unexpected_error_has_occurred,
2844
2912
  select_roles: select_roles,
2845
- no_academy_selected: no_academy_selected
2913
+ no_academy_selected: no_academy_selected,
2914
+ delete_data_successfully: delete_data_successfully,
2915
+ update_academy_successfully: update_academy_successfully,
2916
+ create_academy_successfully: create_academy_successfully,
2917
+ update_article_successfully: update_article_successfully,
2918
+ create_article_successfully: create_article_successfully,
2919
+ update_category_successfully: update_category_successfully,
2920
+ create_category_successfully: create_category_successfully,
2921
+ please_fill_in_all_fields_for_this: please_fill_in_all_fields_for_this,
2922
+ duplicate_weekly_day: duplicate_weekly_day,
2923
+ remove_lesson_failed: remove_lesson_failed,
2924
+ update_lesson_successfully: update_lesson_successfully,
2925
+ create_lesson_successfully: create_lesson_successfully,
2926
+ update_class_successfully: update_class_successfully,
2927
+ create_class_successfully: create_class_successfully,
2928
+ start_times_and_end_times_are_required: start_times_and_end_times_are_required,
2929
+ start_times_must_be_less_than_end_time: start_times_must_be_less_than_end_time,
2930
+ remove_student_successfully: remove_student_successfully,
2931
+ remove_teacher_successfully: remove_teacher_successfully,
2932
+ update_notification_successfully: update_notification_successfully,
2933
+ create_notification_successfully: create_notification_successfully,
2934
+ please_select_category: please_select_category,
2935
+ update_social_successfully: update_social_successfully,
2936
+ import_csv_successfully: import_csv_successfully,
2937
+ download_successfully: download_successfully,
2938
+ file_type_not_valid: file_type_not_valid,
2939
+ upload_image_successfully: upload_image_successfully,
2940
+ category_is_required: category_is_required,
2941
+ textbook_name_is_required: textbook_name_is_required,
2942
+ textbook_subject_is_required: textbook_subject_is_required,
2943
+ update_the_textbook_successfully: update_the_textbook_successfully,
2944
+ create_the_textbook_successfully: create_the_textbook_successfully,
2945
+ finish_exam_successful: finish_exam_successful,
2946
+ you_has_been_kicked_out: you_has_been_kicked_out,
2947
+ the_teacher_has_closed_or_deleted_the_exam: the_teacher_has_closed_or_deleted_the_exam,
2948
+ check_in_lesson_successfully: check_in_lesson_successfully,
2949
+ update_attendance_status_successfully: update_attendance_status_successfully,
2950
+ save_exam_successfully: save_exam_successfully,
2951
+ kick_out_student_successful: kick_out_student_successful,
2952
+ please_select_an_exam_subject: please_select_an_exam_subject,
2953
+ please_enter_exam_title: please_enter_exam_title,
2954
+ exam_required_at_least_one_question: exam_required_at_least_one_question,
2955
+ create_exam_failed: create_exam_failed,
2956
+ please_select_category_for_article: please_select_category_for_article,
2957
+ placeholder_student_selector: placeholder_student_selector,
2958
+ error_uploading_file: error_uploading_file,
2959
+ remove_lesson_successfully: remove_lesson_successfully,
2960
+ user_not_allow_to_register_role: user_not_allow_to_register_role,
2961
+ are_you_sure_to_delete_article_from_chapter: are_you_sure_to_delete_article_from_chapter,
2962
+ are_you_sure_to_delete_subchapter_from_chapter: are_you_sure_to_delete_subchapter_from_chapter,
2963
+ are_you_sure_to_delete_chapter_from_textbook: are_you_sure_to_delete_chapter_from_textbook,
2964
+ do_you_want_to_quit_your_exam: do_you_want_to_quit_your_exam,
2965
+ home: home,
2966
+ profile: profile,
2967
+ settings: settings,
2968
+ sign_up_school_information: sign_up_school_information,
2969
+ korean_high_school: korean_high_school,
2970
+ sign_up_student_information: sign_up_student_information,
2971
+ placeholder_student_name: placeholder_student_name,
2972
+ student_name_is_required: student_name_is_required,
2973
+ the_parent_phone_is_not_valid: the_parent_phone_is_not_valid,
2974
+ the_number_must_be_11_number_or_10_number: the_number_must_be_11_number_or_10_number
2846
2975
  };
2847
2976
 
2848
2977
  var problem_solving$1 = "Problem Solving";
@@ -3256,7 +3385,7 @@ var password$1 = "Password";
3256
3385
  var email_address$1 = "Email Address";
3257
3386
  var please_enter_your_question$1 = "Please enter your question.";
3258
3387
  var test_selection$1 = "Test selection";
3259
- var half_selection$1 = "Half selection";
3388
+ var half_selection$1 = "Selection class";
3260
3389
  var choose_a_problem$1 = "Choose a problem";
3261
3390
  var question_content$1 = "Question content";
3262
3391
  var questions_to_ask$1 = "Questions to ask";
@@ -3339,6 +3468,7 @@ var export_csv$1 = "Export csv";
3339
3468
  var select_type$1 = "Select type";
3340
3469
  var no_message$1 = "No message";
3341
3470
  var this_is_the_guidance_text$1 = "This is the guidance text.";
3471
+ var the_page_you_are_looking_for_was_not_found$1 = "The page you are looking for was not found.";
3342
3472
  var oops$1 = "Oops! You are lost.";
3343
3473
  var please_enter$1 = "Please enter...";
3344
3474
  var notifications$1 = "Notifications";
@@ -3391,6 +3521,67 @@ var the_code_has_been_copied_to_your_clipboard$1 = "The code has been copied to
3391
3521
  var an_unexpected_error_has_occurred$1 = "An unexpected error has occurred";
3392
3522
  var select_roles$1 = "Select roles";
3393
3523
  var no_academy_selected$1 = "No Academy Selected";
3524
+ var delete_data_successfully$1 = "Delete data successfully";
3525
+ var update_academy_successfully$1 = "Update academy successfully";
3526
+ var create_academy_successfully$1 = "Create academy successfully";
3527
+ var update_article_successfully$1 = "Update article successfully";
3528
+ var create_article_successfully$1 = "Create article successfully";
3529
+ var update_category_successfully$1 = "Update category successfully";
3530
+ var create_category_successfully$1 = "Create category successfully";
3531
+ var please_fill_in_all_fields_for_this$1 = "Please fill in all fields for this {{day}}";
3532
+ var duplicate_weekly_day$1 = "Duplicate weekly day";
3533
+ var remove_lesson_failed$1 = "Remove lesson failed";
3534
+ var update_lesson_successfully$1 = "Update lesson successfully";
3535
+ var create_lesson_successfully$1 = "Create lesson successfully";
3536
+ var update_class_successfully$1 = "Update class successfully";
3537
+ var create_class_successfully$1 = "Create class successfully";
3538
+ var start_times_and_end_times_are_required$1 = "Start times and end times are required";
3539
+ var start_times_must_be_less_than_end_time$1 = "Start times must be less than end time";
3540
+ var remove_student_successfully$1 = "Remove student successfully";
3541
+ var remove_teacher_successfully$1 = "Remove teacher successfully";
3542
+ var update_notification_successfully$1 = "Update Notification successfully";
3543
+ var create_notification_successfully$1 = "Create Notification successfully";
3544
+ var please_select_category$1 = "Please select category";
3545
+ var update_social_successfully$1 = "Update social successfully";
3546
+ var import_csv_successfully$1 = "Import CSV successfully";
3547
+ var download_successfully$1 = "Download successfully";
3548
+ var file_type_not_valid$1 = "File type not valid! Please upload a csv file.";
3549
+ var upload_image_successfully$1 = "Upload image successfully";
3550
+ var category_is_required$1 = "Category is required";
3551
+ var textbook_name_is_required$1 = "Textbook name is required";
3552
+ var textbook_subject_is_required$1 = "Textbook subject is required";
3553
+ var update_the_textbook_successfully$1 = "Update the textbook successfully";
3554
+ var create_the_textbook_successfully$1 = "Create the textbook successfully";
3555
+ var finish_exam_successful$1 = "Finish exam successful";
3556
+ var you_has_been_kicked_out$1 = "You has been kicked out";
3557
+ var the_teacher_has_closed_or_deleted_the_exam$1 = "The teacher has closed or deleted the exam, please try again later";
3558
+ var check_in_lesson_successfully$1 = "Check in lesson successfully";
3559
+ var update_attendance_status_successfully$1 = "Update attendance status successfully";
3560
+ var save_exam_successfully$1 = "Save exam successfully";
3561
+ var kick_out_student_successful$1 = "Kick out student successful!";
3562
+ var please_select_an_exam_subject$1 = "Please select an exam subject";
3563
+ var please_enter_exam_title$1 = "Please enter exam title";
3564
+ var exam_required_at_least_one_question$1 = "Exam required at least one question";
3565
+ var create_exam_failed$1 = "Create exam failed";
3566
+ var please_select_category_for_article$1 = "Please select category for article {{article}}";
3567
+ var placeholder_student_selector$1 = "Type at least 2 characters to search";
3568
+ var error_uploading_file$1 = "Error uploading file";
3569
+ var remove_lesson_successfully$1 = "Remove lesson successfully";
3570
+ var user_not_allow_to_register_role$1 = "{{user}} not allow to register {{role}}";
3571
+ var are_you_sure_to_delete_article_from_chapter$1 = "Are you sure to delete article {{articleNumber}} from chapter {{chapterName}}?";
3572
+ var are_you_sure_to_delete_subchapter_from_chapter$1 = "Are you sure to delete subchapter {{subchapter}} from chapter {{chapter}}?";
3573
+ var are_you_sure_to_delete_chapter_from_textbook$1 = "Are you sure to delete chapter {{chapter}} from textbook {{textbook}}?";
3574
+ var do_you_want_to_quit_your_exam$1 = "Do you want to quit your exam?";
3575
+ var home$1 = "Home";
3576
+ var profile$1 = "Profile";
3577
+ var settings$1 = "Settings";
3578
+ var sign_up_school_information$1 = "Sign up - School information";
3579
+ var korean_high_school$1 = "Korean high school";
3580
+ var sign_up_student_information$1 = "Sign up - Student Information";
3581
+ var placeholder_student_name$1 = "Kim ㅇㅇ";
3582
+ var student_name_is_required$1 = "Student Name is required!";
3583
+ var the_parent_phone_is_not_valid$1 = "The parent phone is not valid";
3584
+ var the_number_must_be_11_number_or_10_number$1 = "The number must be 11 number or 10 number";
3394
3585
  var lang_en = {
3395
3586
  problem_solving: problem_solving$1,
3396
3587
  my_story: my_story$1,
@@ -3879,7 +4070,7 @@ var lang_en = {
3879
4070
  select_type: select_type$1,
3880
4071
  no_message: no_message$1,
3881
4072
  this_is_the_guidance_text: this_is_the_guidance_text$1,
3882
- "the_page_you_are_looking_for_was_not_found.": "The page you are looking for was not found.",
4073
+ the_page_you_are_looking_for_was_not_found: the_page_you_are_looking_for_was_not_found$1,
3883
4074
  oops: oops$1,
3884
4075
  please_enter: please_enter$1,
3885
4076
  notifications: notifications$1,
@@ -3932,7 +4123,68 @@ var lang_en = {
3932
4123
  the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard$1,
3933
4124
  an_unexpected_error_has_occurred: an_unexpected_error_has_occurred$1,
3934
4125
  select_roles: select_roles$1,
3935
- no_academy_selected: no_academy_selected$1
4126
+ no_academy_selected: no_academy_selected$1,
4127
+ delete_data_successfully: delete_data_successfully$1,
4128
+ update_academy_successfully: update_academy_successfully$1,
4129
+ create_academy_successfully: create_academy_successfully$1,
4130
+ update_article_successfully: update_article_successfully$1,
4131
+ create_article_successfully: create_article_successfully$1,
4132
+ update_category_successfully: update_category_successfully$1,
4133
+ create_category_successfully: create_category_successfully$1,
4134
+ please_fill_in_all_fields_for_this: please_fill_in_all_fields_for_this$1,
4135
+ duplicate_weekly_day: duplicate_weekly_day$1,
4136
+ remove_lesson_failed: remove_lesson_failed$1,
4137
+ update_lesson_successfully: update_lesson_successfully$1,
4138
+ create_lesson_successfully: create_lesson_successfully$1,
4139
+ update_class_successfully: update_class_successfully$1,
4140
+ create_class_successfully: create_class_successfully$1,
4141
+ start_times_and_end_times_are_required: start_times_and_end_times_are_required$1,
4142
+ start_times_must_be_less_than_end_time: start_times_must_be_less_than_end_time$1,
4143
+ remove_student_successfully: remove_student_successfully$1,
4144
+ remove_teacher_successfully: remove_teacher_successfully$1,
4145
+ update_notification_successfully: update_notification_successfully$1,
4146
+ create_notification_successfully: create_notification_successfully$1,
4147
+ please_select_category: please_select_category$1,
4148
+ update_social_successfully: update_social_successfully$1,
4149
+ import_csv_successfully: import_csv_successfully$1,
4150
+ download_successfully: download_successfully$1,
4151
+ file_type_not_valid: file_type_not_valid$1,
4152
+ upload_image_successfully: upload_image_successfully$1,
4153
+ category_is_required: category_is_required$1,
4154
+ textbook_name_is_required: textbook_name_is_required$1,
4155
+ textbook_subject_is_required: textbook_subject_is_required$1,
4156
+ update_the_textbook_successfully: update_the_textbook_successfully$1,
4157
+ create_the_textbook_successfully: create_the_textbook_successfully$1,
4158
+ finish_exam_successful: finish_exam_successful$1,
4159
+ you_has_been_kicked_out: you_has_been_kicked_out$1,
4160
+ the_teacher_has_closed_or_deleted_the_exam: the_teacher_has_closed_or_deleted_the_exam$1,
4161
+ check_in_lesson_successfully: check_in_lesson_successfully$1,
4162
+ update_attendance_status_successfully: update_attendance_status_successfully$1,
4163
+ save_exam_successfully: save_exam_successfully$1,
4164
+ kick_out_student_successful: kick_out_student_successful$1,
4165
+ please_select_an_exam_subject: please_select_an_exam_subject$1,
4166
+ please_enter_exam_title: please_enter_exam_title$1,
4167
+ exam_required_at_least_one_question: exam_required_at_least_one_question$1,
4168
+ create_exam_failed: create_exam_failed$1,
4169
+ please_select_category_for_article: please_select_category_for_article$1,
4170
+ placeholder_student_selector: placeholder_student_selector$1,
4171
+ error_uploading_file: error_uploading_file$1,
4172
+ remove_lesson_successfully: remove_lesson_successfully$1,
4173
+ user_not_allow_to_register_role: user_not_allow_to_register_role$1,
4174
+ are_you_sure_to_delete_article_from_chapter: are_you_sure_to_delete_article_from_chapter$1,
4175
+ are_you_sure_to_delete_subchapter_from_chapter: are_you_sure_to_delete_subchapter_from_chapter$1,
4176
+ are_you_sure_to_delete_chapter_from_textbook: are_you_sure_to_delete_chapter_from_textbook$1,
4177
+ do_you_want_to_quit_your_exam: do_you_want_to_quit_your_exam$1,
4178
+ home: home$1,
4179
+ profile: profile$1,
4180
+ settings: settings$1,
4181
+ sign_up_school_information: sign_up_school_information$1,
4182
+ korean_high_school: korean_high_school$1,
4183
+ sign_up_student_information: sign_up_student_information$1,
4184
+ placeholder_student_name: placeholder_student_name$1,
4185
+ student_name_is_required: student_name_is_required$1,
4186
+ the_parent_phone_is_not_valid: the_parent_phone_is_not_valid$1,
4187
+ the_number_must_be_11_number_or_10_number: the_number_must_be_11_number_or_10_number$1
3936
4188
  };
3937
4189
 
3938
4190
  i18n.use(reactI18next.initReactI18next).init({
@@ -4079,8 +4331,7 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4079
4331
  if (_temp && _temp.then) return _temp.then(function () {});
4080
4332
  });
4081
4333
  }, function (error) {
4082
- var _error$response, _error$response$data;
4083
- 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");
4334
+ reactToastify.toast.error(getErrorMessage(t, error));
4084
4335
  });
4085
4336
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
4086
4337
  } catch (e) {
@@ -4113,9 +4364,8 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4113
4364
  return Promise.resolve(handleLoginAccessToken(requestBody, false, user.academyDomain ? academyDomain : undefined)).then(function () {});
4114
4365
  });
4115
4366
  }, function (error) {
4116
- var _error$response2, _error$response2$data;
4117
4367
  academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
4118
- 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"));
4368
+ reactToastify.toast.error(getErrorMessage(t, error));
4119
4369
  });
4120
4370
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
4121
4371
  } catch (e) {
@@ -4242,7 +4492,8 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4242
4492
  xs: 6,
4243
4493
  lg: 2,
4244
4494
  justifyContent: "center",
4245
- alignItems: "center"
4495
+ alignItems: "center",
4496
+ className: "d-sm-none d-md-flex"
4246
4497
  }, React__default.createElement(material.Stack, {
4247
4498
  flexDirection: "row",
4248
4499
  width: "100%",
@@ -4280,6 +4531,11 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4280
4531
  }
4281
4532
  }
4282
4533
  }
4534
+ }, React__default.createElement(material.MenuList, {
4535
+ sx: {
4536
+ maxHeight: 240,
4537
+ overflowY: "auto"
4538
+ }
4283
4539
  }, academyList.map(function (option) {
4284
4540
  var _option$name$charAt;
4285
4541
  return React__default.createElement(MenuItemCustom, {
@@ -4319,7 +4575,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4319
4575
  fontWeight: 600
4320
4576
  }
4321
4577
  }, option.name))));
4322
- }), React__default.createElement(MenuItemCustom, {
4578
+ })), React__default.createElement(MenuItemCustom, {
4323
4579
  sx: {
4324
4580
  whiteSpace: "wrap",
4325
4581
  borderRadius: "6px"
@@ -4652,7 +4908,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
4652
4908
  disableFocusListener: true,
4653
4909
  disableHoverListener: true,
4654
4910
  disableTouchListener: true,
4655
- placement: "top-start"
4911
+ placement: "top"
4656
4912
  }, React__default.createElement("div", {
4657
4913
  onClick: handleOpenTooltip
4658
4914
  }, React__default.createElement(iconMore, null))))), contentType ? React__default.createElement(material.Stack, {
@@ -4855,8 +5111,8 @@ var useDialog = function useDialog() {
4855
5111
  toggleDialog();
4856
5112
  reactToastify.toast.success(t("complete_conversation_successfully"));
4857
5113
  });
4858
- }, function () {
4859
- reactToastify.toast.error(t("fail_to_complete_conversation"));
5114
+ }, function (error) {
5115
+ reactToastify.toast.error(getErrorMessage(t, error, t("fail_to_complete_conversation")));
4860
5116
  });
4861
5117
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
4862
5118
  } catch (e) {
@@ -4885,11 +5141,10 @@ var useDialog = function useDialog() {
4885
5141
  setSelectedFile({
4886
5142
  content: res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.url
4887
5143
  });
4888
- reactToastify.toast.success("Upload image successfully");
5144
+ reactToastify.toast.success(t('upload_image_successfully'));
4889
5145
  });
4890
5146
  }, function (error) {
4891
- var _error$response;
4892
- reactToastify.toast.error((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
5147
+ reactToastify.toast.error(getErrorMessage(t, error));
4893
5148
  });
4894
5149
  }, function () {}));
4895
5150
  } catch (e) {
@@ -5801,6 +6056,8 @@ var useMessageList = function useMessageList() {
5801
6056
  var _useState3 = React.useState(false),
5802
6057
  isLoading = _useState3[0],
5803
6058
  setLoading = _useState3[1];
6059
+ var _useTranslation = reactI18next.useTranslation(),
6060
+ t = _useTranslation.t;
5804
6061
  var getMessageList = function getMessageList(conversationId) {
5805
6062
  try {
5806
6063
  var _temp2 = function _temp2() {
@@ -5821,8 +6078,8 @@ var useMessageList = function useMessageList() {
5821
6078
  });
5822
6079
  });
5823
6080
  });
5824
- }, function () {
5825
- reactToastify.toast.error("Fail to fetch data!");
6081
+ }, function (error) {
6082
+ reactToastify.toast.error(getErrorMessage(t, error));
5826
6083
  });
5827
6084
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
5828
6085
  } catch (e) {
@@ -5862,8 +6119,8 @@ var useMessageList = function useMessageList() {
5862
6119
  }
5863
6120
  });
5864
6121
  });
5865
- }, function () {
5866
- reactToastify.toast.error("Fail to fetch data!");
6122
+ }, function (error) {
6123
+ reactToastify.toast.error(getErrorMessage(t, error));
5867
6124
  _exit = true;
5868
6125
  });
5869
6126
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
@@ -5885,8 +6142,8 @@ var useMessageList = function useMessageList() {
5885
6142
  if (isLoading) return Promise.resolve();
5886
6143
  var _temp5 = _catch(function () {
5887
6144
  return Promise.resolve(deleteMessage(conversationId, id)).then(function () {});
5888
- }, function () {
5889
- reactToastify.toast.error("Fail to delete message!");
6145
+ }, function (error) {
6146
+ reactToastify.toast.error(getErrorMessage(t, error));
5890
6147
  _exit2 = true;
5891
6148
  });
5892
6149
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
@@ -5921,8 +6178,8 @@ var useMessageList = function useMessageList() {
5921
6178
  var _exit3 = false;
5922
6179
  var _temp7 = _catch(function () {
5923
6180
  return Promise.resolve(updateMessage(conversationId, id, message)).then(function () {});
5924
- }, function () {
5925
- reactToastify.toast.error("Fail to update message!");
6181
+ }, function (error) {
6182
+ reactToastify.toast.error(getErrorMessage(t, error));
5926
6183
  _exit3 = true;
5927
6184
  });
5928
6185
  return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
@@ -5949,6 +6206,8 @@ var useChatContainer = function useChatContainer(props) {
5949
6206
  var _selectedConversation3;
5950
6207
  var conversation = props.conversation,
5951
6208
  student = props.student;
6209
+ var _useTranslation = reactI18next.useTranslation(),
6210
+ t = _useTranslation.t;
5952
6211
  var concurrentConnectionPusher = reactRedux.useSelector(function (state) {
5953
6212
  var _state$common;
5954
6213
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.concurrentConnectionPusher;
@@ -6026,13 +6285,12 @@ var useChatContainer = function useChatContainer(props) {
6026
6285
  }();
6027
6286
  return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
6028
6287
  }, function (error) {
6029
- var _error$response;
6030
6288
  setMessages(function (state) {
6031
6289
  return [].concat(state.filter(function (i) {
6032
6290
  return (i === null || i === void 0 ? void 0 : i.id) !== 0;
6033
6291
  }));
6034
6292
  });
6035
- reactToastify.toast.error((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
6293
+ reactToastify.toast.error(getErrorMessage(t, error));
6036
6294
  });
6037
6295
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
6038
6296
  } catch (e) {
@@ -6051,13 +6309,12 @@ var useChatContainer = function useChatContainer(props) {
6051
6309
  });
6052
6310
  });
6053
6311
  }, function (error) {
6054
- var _error$response2;
6055
6312
  setMessages(function (state) {
6056
6313
  return [].concat(state.filter(function (i) {
6057
6314
  return (i === null || i === void 0 ? void 0 : i.id) !== 0;
6058
6315
  }));
6059
6316
  });
6060
- reactToastify.toast.error((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data);
6317
+ reactToastify.toast.error(getErrorMessage(t, error));
6061
6318
  });
6062
6319
  }, function () {})) : Promise.resolve();
6063
6320
  };
@@ -7217,12 +7474,14 @@ var useExam = function useExam(props) {
7217
7474
  callback === null || callback === void 0 ? void 0 : callback();
7218
7475
  };
7219
7476
  var validateExam = function validateExam(exam) {
7220
- if (!exam.subjectId) return t("Please select an exam subject");
7221
- if (!exam.title.trim().length) return t("Please enter exam title");
7222
- if (!exam.questions.length) return t("Exam required at least one question");
7477
+ if (!exam.subjectId) return t("please_select_an_exam_subject");
7478
+ if (!exam.title.trim().length) return t("please_enter_exam_title");
7479
+ if (!exam.questions.length) return t("exam_required_at_least_one_question");
7223
7480
  for (var i = 0; i < exam.questions.length; i++) {
7224
7481
  var question = exam.questions[i];
7225
- if (!question.categoryId) return t("Please select category for article " + question.article);
7482
+ if (!question.categoryId) return t('please_select_category_for_article', {
7483
+ article: question.article
7484
+ });
7226
7485
  }
7227
7486
  return false;
7228
7487
  };
@@ -7244,20 +7503,19 @@ var useExam = function useExam(props) {
7244
7503
  }))).then(function (res) {
7245
7504
  var _temp = function (_res$data, _res$data$data) {
7246
7505
  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)) {
7247
- reactToastify.toast.error("Create exam failed");
7506
+ reactToastify.toast.error(t('create_exam_failed'));
7248
7507
  } else {
7249
7508
  var _res$data2, _res$data2$data;
7250
7509
  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 () {
7251
7510
  setExamRequest(DEFAULT_EXAM_REQUEST);
7252
- reactToastify.toast.success("Create exam successfully");
7511
+ reactToastify.toast.success(t('create_exam_successfully'));
7253
7512
  });
7254
7513
  }
7255
7514
  }();
7256
7515
  if (_temp && _temp.then) return _temp.then(function () {});
7257
7516
  });
7258
7517
  }, function (error) {
7259
- var _error$response;
7260
- 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");
7518
+ reactToastify.toast.error(getErrorMessage(t, error));
7261
7519
  });
7262
7520
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
7263
7521
  } catch (e) {
@@ -7281,12 +7539,11 @@ var useExam = function useExam(props) {
7281
7539
  duration: minutesToTimeSpan(examRequest.duration || 0)
7282
7540
  }))).then(function () {
7283
7541
  handleCloseDialog();
7284
- reactToastify.toast.success("Save exam successfully");
7542
+ reactToastify.toast.success(t('save_exam_successfully'));
7285
7543
  isTeacher ? navigate('/teacher/exam-list') : navigate('/exams');
7286
7544
  });
7287
7545
  }, function (error) {
7288
- var _error$response2;
7289
- 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");
7546
+ reactToastify.toast.error(getErrorMessage(t, error));
7290
7547
  });
7291
7548
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
7292
7549
  } catch (e) {
@@ -7374,8 +7631,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7374
7631
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7375
7632
  });
7376
7633
  }, function (error) {
7377
- var _error$response, _error$response$data;
7378
- 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");
7634
+ reactToastify.toast.error(getErrorMessage(t, error));
7379
7635
  });
7380
7636
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
7381
7637
  } catch (e) {
@@ -7409,8 +7665,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7409
7665
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7410
7666
  });
7411
7667
  }, function (error) {
7412
- var _error$response2, _error$response2$data;
7413
- 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");
7668
+ reactToastify.toast.error(getErrorMessage(t, error));
7414
7669
  });
7415
7670
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
7416
7671
  } catch (e) {
@@ -7429,8 +7684,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7429
7684
  callback === null || callback === void 0 ? void 0 : callback();
7430
7685
  });
7431
7686
  }, function (error) {
7432
- var _error$response3, _error$response3$data;
7433
- 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");
7687
+ reactToastify.toast.error(getErrorMessage(t, error));
7434
7688
  });
7435
7689
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
7436
7690
  } catch (e) {
@@ -7468,8 +7722,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7468
7722
  callback === null || callback === void 0 ? void 0 : callback();
7469
7723
  });
7470
7724
  }, function (error) {
7471
- var _error$response4, _error$response4$data;
7472
- 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");
7725
+ reactToastify.toast.error(getErrorMessage(t, error));
7473
7726
  });
7474
7727
  return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
7475
7728
  } catch (e) {
@@ -7499,8 +7752,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7499
7752
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7500
7753
  });
7501
7754
  }, function (error) {
7502
- var _error$response5, _error$response5$data;
7503
- 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");
7755
+ reactToastify.toast.error(getErrorMessage(t, error));
7504
7756
  });
7505
7757
  return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
7506
7758
  } catch (e) {
@@ -7619,7 +7871,10 @@ var useTextbookDetail = function useTextbookDetail(props) {
7619
7871
  articleNumber: articleNumber,
7620
7872
  value: articles,
7621
7873
  name: "" + articleNumber,
7622
- confirmText: "Are you sure to delete article (" + articleNumber + ") from chapter (" + chapterName + ")"
7874
+ confirmText: t('are_you_sure_to_delete_article_from_chapter', {
7875
+ articleNumber: articleNumber,
7876
+ chapterName: chapterName
7877
+ })
7623
7878
  });
7624
7879
  };
7625
7880
  var handleOpenRemoveChapterConfirmDialog = function handleOpenRemoveChapterConfirmDialog(chapterName, chapterId, parentChapterId) {
@@ -7631,14 +7886,20 @@ var useTextbookDetail = function useTextbookDetail(props) {
7631
7886
  chapterId: chapterId,
7632
7887
  parentChapterId: parentChapterId,
7633
7888
  name: "" + chapterName,
7634
- confirmText: "Are you sure to delete subchapter (" + chapterName + ") from chapter (" + textbook.chapters[parentChapterIndex].name + ")"
7889
+ confirmText: t('are_you_sure_to_delete_subchapter_from_chapter', {
7890
+ subchapter: chapterName,
7891
+ chapter: textbook.chapters[parentChapterIndex].name
7892
+ })
7635
7893
  });
7636
7894
  } else {
7637
7895
  setSelectedDeleteItem({
7638
7896
  chapterId: chapterId,
7639
7897
  parentChapterId: parentChapterId,
7640
7898
  name: "" + chapterName,
7641
- confirmText: "Are you sure to delete chapter (" + chapterName + ") from textbook (" + textbook.name + ")"
7899
+ confirmText: t('are_you_sure_to_delete_chapter_from_textbook', {
7900
+ chapter: chapterName,
7901
+ textbook: textbook.name
7902
+ })
7642
7903
  });
7643
7904
  }
7644
7905
  };
@@ -7803,8 +8064,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7803
8064
  handleCloseChapterNameDialog();
7804
8065
  });
7805
8066
  }, function (error) {
7806
- var _error$response6, _error$response6$data;
7807
- 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");
8067
+ reactToastify.toast.error(getErrorMessage(t, error));
7808
8068
  });
7809
8069
  return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10));
7810
8070
  } catch (e) {
@@ -7818,11 +8078,11 @@ var useTextbookDetail = function useTextbookDetail(props) {
7818
8078
  var validateTextbook = function validateTextbook() {
7819
8079
  var _textbook$subject;
7820
8080
  if (!textbook.name.trim().length) {
7821
- reactToastify.toast.error("Textbook name is required");
8081
+ reactToastify.toast.error(t('textbook_name_is_required'));
7822
8082
  return false;
7823
8083
  }
7824
8084
  if (!((_textbook$subject = textbook.subject) !== null && _textbook$subject !== void 0 && _textbook$subject.id)) {
7825
- reactToastify.toast.error("Textbook subject is required");
8085
+ reactToastify.toast.error(t('textbook_subject_is_required'));
7826
8086
  return false;
7827
8087
  }
7828
8088
  return true;
@@ -7842,7 +8102,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7842
8102
  dispatch(setLoading(true));
7843
8103
  var _temp14 = _catch(function () {
7844
8104
  function _temp13() {
7845
- reactToastify.toast.success((textbook.id ? "Update" : "Create") + " the textbook successfully");
8105
+ reactToastify.toast.success(t(textbook.id ? "update_the_textbook_successfully" : "create_the_textbook_successfully"));
7846
8106
  }
7847
8107
  var _temp12 = function () {
7848
8108
  if (textbook.id) {
@@ -7865,8 +8125,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7865
8125
  }();
7866
8126
  return _temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12);
7867
8127
  }, function (error) {
7868
- var _error$response7, _error$response7$data;
7869
- 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");
8128
+ reactToastify.toast.error(getErrorMessage(t, error));
7870
8129
  });
7871
8130
  return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14));
7872
8131
  } catch (e) {
@@ -7945,8 +8204,8 @@ var useTextbookDetail = function useTextbookDetail(props) {
7945
8204
  setNotFound(false);
7946
8205
  });
7947
8206
  }, function (error) {
7948
- var _error$response8, _error$response9, _error$response9$data;
7949
- 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");
8207
+ var _error$response;
8208
+ 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));
7950
8209
  });
7951
8210
  return Promise.resolve(_temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16));
7952
8211
  } catch (e) {
@@ -8189,7 +8448,7 @@ var ArticleDialog = function ArticleDialog(_ref) {
8189
8448
  article = _useState[0],
8190
8449
  setArticle = _useState[1];
8191
8450
  var handleSubmit = function handleSubmit() {
8192
- if (!article.categoryId) reactToastify.toast.error("Category is required");
8451
+ if (!article.categoryId) reactToastify.toast.error(t('category_is_required'));
8193
8452
  onSubmitForm(article);
8194
8453
  };
8195
8454
  var handleChangeQuestionCount = function handleChangeQuestionCount(_ref2) {
@@ -8376,6 +8635,8 @@ var SubjectSelector = function SubjectSelector(_ref) {
8376
8635
  var _state$common2, _state$common2$user;
8377
8636
  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) || [];
8378
8637
  }).includes(exports.Role.Admin) && !isDomain;
8638
+ var _useTranslation = reactI18next.useTranslation(),
8639
+ t = _useTranslation.t;
8379
8640
  var loadData = React.useCallback(function () {
8380
8641
  try {
8381
8642
  var _temp2 = function _temp2() {
@@ -8393,9 +8654,8 @@ var SubjectSelector = function SubjectSelector(_ref) {
8393
8654
  items = _res$data$items === void 0 ? [] : _res$data$items;
8394
8655
  setSubjects(items);
8395
8656
  });
8396
- }, function (err) {
8397
- var _err$response, _err$response$data;
8398
- 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);
8657
+ }, function (error) {
8658
+ reactToastify.toast.error(getErrorMessage(t, error));
8399
8659
  });
8400
8660
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
8401
8661
  } catch (e) {
@@ -9112,7 +9372,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9112
9372
  return;
9113
9373
  }
9114
9374
  if (!paramAcademyDomain) {
9115
- !paramAcademyDomain && searchParams.set("domain", academyDomain);
9375
+ searchParams.set("domain", academyDomain);
9116
9376
  pushTo(history, _extends({}, window.location, {
9117
9377
  search: searchParams.toString()
9118
9378
  }));
@@ -9151,6 +9411,8 @@ var useList = function useList(fetchData, defaultQuery) {
9151
9411
  setSelectedItem = _useState4[1];
9152
9412
  var textSearchRef = React.useRef(null);
9153
9413
  var isFirstLoadRef = React.useRef(true);
9414
+ var _useTranslation = reactI18next.useTranslation(),
9415
+ t = _useTranslation.t;
9154
9416
  var handleChangeSelectedItem = function handleChangeSelectedItem(item) {
9155
9417
  setSelectedItem(item);
9156
9418
  };
@@ -9177,10 +9439,9 @@ var useList = function useList(fetchData, defaultQuery) {
9177
9439
  setData(items);
9178
9440
  });
9179
9441
  }, function (error) {
9180
- var _error$response, _error$response$data;
9181
9442
  setPaging(DEFAULT_PAGING_RESPONSE);
9182
9443
  setData([]);
9183
- 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");
9444
+ reactToastify.toast.error(getErrorMessage(t, error));
9184
9445
  });
9185
9446
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
9186
9447
  } catch (e) {
@@ -9265,6 +9526,8 @@ var useTextbookList = function useTextbookList(props) {
9265
9526
  calcOrderNumber = _useList.calcOrderNumber,
9266
9527
  handleChangeSelectedItem = _useList.handleChangeSelectedItem,
9267
9528
  getData = _useList.getData;
9529
+ var _useTranslation = reactI18next.useTranslation(),
9530
+ t = _useTranslation.t;
9268
9531
  var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
9269
9532
  var dispatch = reactRedux.useDispatch();
9270
9533
  var handleViewTextbook = function handleViewTextbook(id) {
@@ -9302,8 +9565,7 @@ var useTextbookList = function useTextbookList(props) {
9302
9565
  });
9303
9566
  });
9304
9567
  }, function (error) {
9305
- var _error$response, _error$response$data;
9306
- 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");
9568
+ reactToastify.toast.error(getErrorMessage(t, error));
9307
9569
  });
9308
9570
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
9309
9571
  } catch (e) {
@@ -10502,8 +10764,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10502
10764
  setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
10503
10765
  });
10504
10766
  }, function (error) {
10505
- var _error$response;
10506
- 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);
10767
+ reactToastify.toast.error(getErrorMessage(t, error));
10507
10768
  });
10508
10769
  return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
10509
10770
  };
@@ -10539,8 +10800,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10539
10800
  setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
10540
10801
  });
10541
10802
  }, function (error) {
10542
- var _error$response2;
10543
- 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);
10803
+ reactToastify.toast.error(getErrorMessage(t, error));
10544
10804
  });
10545
10805
  return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
10546
10806
  };
@@ -10896,7 +11156,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10896
11156
  console.log({
10897
11157
  error: error
10898
11158
  });
10899
- reactToastify.toast.error("Print pdf failure!");
11159
+ reactToastify.toast.error(getErrorMessage(t, error));
10900
11160
  });
10901
11161
  return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23));
10902
11162
  } catch (e) {
@@ -12196,18 +12456,21 @@ var useMyAnswer = function useMyAnswer() {
12196
12456
  };
12197
12457
  };
12198
12458
 
12199
- var useCreateQuestionDialog = function useCreateQuestionDialog() {
12459
+ var useCreateQuestionDialog = function useCreateQuestionDialog(_ref) {
12460
+ var questions = _ref.questions;
12200
12461
  var _useState = React.useState(false),
12201
12462
  openDialog = _useState[0],
12202
12463
  setOpenDialog = _useState[1];
12203
12464
  var dispatch = reactRedux.useDispatch();
12465
+ var _useTranslation = reactI18next.useTranslation(),
12466
+ t = _useTranslation.t;
12204
12467
  var toggleDialog = function toggleDialog() {
12205
12468
  setOpenDialog(!openDialog);
12206
12469
  };
12207
- var handleCreateQuestion = function handleCreateQuestion(_ref) {
12208
- var content = _ref.content,
12209
- examSessionId = _ref.examSessionId,
12210
- questionId = _ref.questionId;
12470
+ var handleCreateQuestion = function handleCreateQuestion(_ref2) {
12471
+ var content = _ref2.content,
12472
+ examSessionId = _ref2.examSessionId,
12473
+ questionId = _ref2.questionId;
12211
12474
  try {
12212
12475
  var _temp2 = function _temp2() {
12213
12476
  dispatch(setLoading(false));
@@ -12222,18 +12485,31 @@ var useCreateQuestionDialog = function useCreateQuestionDialog() {
12222
12485
  toggleDialog();
12223
12486
  });
12224
12487
  }, function (error) {
12225
- var _error$response, _error$response$data;
12226
- 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!");
12488
+ reactToastify.toast.error(getErrorMessage(t, error));
12227
12489
  });
12228
12490
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
12229
12491
  } catch (e) {
12230
12492
  return Promise.reject(e);
12231
12493
  }
12232
12494
  };
12495
+ var questionOptions = React.useMemo(function () {
12496
+ if (!questions) return [];
12497
+ return questions.map(function (_ref3) {
12498
+ var id = _ref3.id,
12499
+ questionOrder = _ref3.questionOrder;
12500
+ return {
12501
+ label: t("question_order", {
12502
+ number: questionOrder + 1
12503
+ }),
12504
+ value: id
12505
+ };
12506
+ });
12507
+ }, [questions]);
12233
12508
  return {
12234
12509
  openCreateQuestionDialog: openDialog,
12235
12510
  toggleCreateQuestion: toggleDialog,
12236
- handleCreateQuestion: handleCreateQuestion
12511
+ handleCreateQuestion: handleCreateQuestion,
12512
+ questionOptions: questionOptions
12237
12513
  };
12238
12514
  };
12239
12515
 
@@ -12282,7 +12558,7 @@ function CreateNewQuestionDialog(_ref) {
12282
12558
  toggleCreateQuestion = _ref.toggleCreateQuestion,
12283
12559
  examSessionId = _ref.examSessionId,
12284
12560
  questionOrderSelected = _ref.questionOrderSelected,
12285
- questions = _ref.questions;
12561
+ questionOptions = _ref.questionOptions;
12286
12562
  var _useTranslation = reactI18next.useTranslation(),
12287
12563
  t = _useTranslation.t;
12288
12564
  return React__default.createElement(material.Dialog, {
@@ -12328,7 +12604,8 @@ function CreateNewQuestionDialog(_ref) {
12328
12604
  }));
12329
12605
  }
12330
12606
  }, function (_ref2) {
12331
- var errors = _ref2.errors;
12607
+ var errors = _ref2.errors,
12608
+ setFieldValue = _ref2.setFieldValue;
12332
12609
  return React__default.createElement(formik.Form, null, React__default.createElement(material.Box, {
12333
12610
  display: "flex",
12334
12611
  flexDirection: "column",
@@ -12338,20 +12615,22 @@ function CreateNewQuestionDialog(_ref) {
12338
12615
  htmlFor: "questions",
12339
12616
  className: styles['form-label'] + " " + styles$4['form-label-dialog']
12340
12617
  }, t('questions_to_ask')), React__default.createElement(formik.Field, {
12341
- as: "select",
12342
12618
  id: "questions",
12343
12619
  name: "questionId",
12344
- style: {
12345
- width: "100%"
12346
- },
12347
- className: "" + styles['form-select']
12348
- }, questions === null || questions === void 0 ? void 0 : questions.map(function (question) {
12349
- return React__default.createElement("option", {
12350
- value: question === null || question === void 0 ? void 0 : question.id
12351
- }, t('question_order', {
12352
- number: (question === null || question === void 0 ? void 0 : question.questionOrder) + 1
12353
- }));
12354
- }))), React__default.createElement(material.Stack, null, React__default.createElement("label", {
12620
+ render: function render(_ref3) {
12621
+ var field = _ref3.field;
12622
+ return React__default.createElement(CustomSelect, Object.assign({}, field, {
12623
+ id: "questions",
12624
+ menuPlacement: "bottom",
12625
+ options: questionOptions,
12626
+ onChange: function onChange(_ref4) {
12627
+ var value = _ref4.value;
12628
+ return setFieldValue("questionId", value);
12629
+ },
12630
+ isClearable: false
12631
+ }));
12632
+ }
12633
+ })), React__default.createElement(material.Stack, null, React__default.createElement("label", {
12355
12634
  htmlFor: "content-question",
12356
12635
  className: styles['form-label'] + " " + styles$4['form-label-dialog']
12357
12636
  }, t('question_content')), React__default.createElement(material.Box, {
@@ -12419,10 +12698,13 @@ function MyAnswer(_ref) {
12419
12698
  categories = _ref.categories,
12420
12699
  isStudent = _ref.isStudent,
12421
12700
  isPrint = _ref.isPrint;
12422
- var _useCreateQuestionDia = useCreateQuestionDialog(),
12701
+ var _useCreateQuestionDia = useCreateQuestionDialog({
12702
+ questions: data.questions
12703
+ }),
12423
12704
  handleCreateQuestion = _useCreateQuestionDia.handleCreateQuestion,
12424
12705
  openCreateQuestionDialog = _useCreateQuestionDia.openCreateQuestionDialog,
12425
- toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion;
12706
+ toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion,
12707
+ questionOptions = _useCreateQuestionDia.questionOptions;
12426
12708
  var _useMyAnswer = useMyAnswer(),
12427
12709
  isOpenTime = _useMyAnswer.isOpenTime,
12428
12710
  handleSelectQuestionOrder = _useMyAnswer.handleSelectQuestionOrder,
@@ -12636,7 +12918,7 @@ function MyAnswer(_ref) {
12636
12918
  className: styles$4["contentMyAnswer"]
12637
12919
  }, isPrint ? renderPrintQuestions(item.questions) : renderQuestions(item.questions)));
12638
12920
  }), React__default.createElement(CreateNewQuestionDialog, {
12639
- questions: data === null || data === void 0 ? void 0 : data.questions,
12921
+ questionOptions: questionOptions,
12640
12922
  questionOrderSelected: questionOrderSelected,
12641
12923
  examSessionId: data === null || data === void 0 ? void 0 : data.examSessionId,
12642
12924
  handleCreateQuestion: handleCreateQuestion,
@@ -13179,6 +13461,8 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
13179
13461
  openDialog = _useState[0],
13180
13462
  setOpenDialog = _useState[1];
13181
13463
  var dispatch = reactRedux.useDispatch();
13464
+ var _useTranslation = reactI18next.useTranslation(),
13465
+ t = _useTranslation.t;
13182
13466
  var toggleDialog = function toggleDialog() {
13183
13467
  setOpenDialog(!openDialog);
13184
13468
  };
@@ -13198,8 +13482,7 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
13198
13482
  toggleDialog();
13199
13483
  });
13200
13484
  }, function (error) {
13201
- var _error$response, _error$response$data;
13202
- 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!");
13485
+ reactToastify.toast.error(getErrorMessage(t, error));
13203
13486
  });
13204
13487
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
13205
13488
  } catch (e) {
@@ -13964,7 +14247,7 @@ var useLogin$2 = function useLogin(_ref) {
13964
14247
  });
13965
14248
  }, function (error) {
13966
14249
  console.log(error);
13967
- reactToastify.toast.error(t('request_login_fail'));
14250
+ reactToastify.toast.error(getErrorMessage(t, error, t('request_login_fail')));
13968
14251
  }));
13969
14252
  } catch (e) {
13970
14253
  return Promise.reject(e);
@@ -13978,7 +14261,7 @@ var useLogin$2 = function useLogin(_ref) {
13978
14261
  if (redirectUrl) pushTo(history, redirectUrl);
13979
14262
  };
13980
14263
  React.useEffect(function () {
13981
- var token = getAccessToken$1();
14264
+ var token = getAccessToken();
13982
14265
  if (!!token) pushTo(history, "/");
13983
14266
  }, []);
13984
14267
  return {
@@ -14452,7 +14735,10 @@ var Header = function Header(_ref) {
14452
14735
  width: "100%",
14453
14736
  display: "flex",
14454
14737
  flexDirection: "row",
14455
- gap: "24px",
14738
+ gap: {
14739
+ xs: "16",
14740
+ md: "24"
14741
+ },
14456
14742
  className: styles["tabBox"] + " " + styles["headers"]
14457
14743
  }, React__default.createElement(material.Stack, {
14458
14744
  padding: "10px 0",
@@ -14513,7 +14799,23 @@ var Header = function Header(_ref) {
14513
14799
  })), React__default.createElement(material.Stack, {
14514
14800
  direction: "row",
14515
14801
  alignItems: "center"
14516
- }, React__default.createElement(reactRouterDom.Link, {
14802
+ }, React__default.createElement(material.Typography, {
14803
+ color: styles.gray_700,
14804
+ className: "fw-bold me-3 text-nowrap flex-shrink-1",
14805
+ sx: {
14806
+ minWidth: "60px",
14807
+ maxWidth: {
14808
+ md: "100px",
14809
+ xs: "60px"
14810
+ },
14811
+ fontSize: {
14812
+ md: "16px",
14813
+ xs: "14px"
14814
+ },
14815
+ overflow: "hidden",
14816
+ textOverflow: "ellipsis"
14817
+ }
14818
+ }, user === null || user === void 0 ? void 0 : user.fullName), React__default.createElement(reactRouterDom.Link, {
14517
14819
  "aria-current": "page",
14518
14820
  to: homeRoute.path,
14519
14821
  className: "border-none"
@@ -14550,6 +14852,8 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14550
14852
  var _state$common, _state$common$user;
14551
14853
  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;
14552
14854
  });
14855
+ var _useTranslation = reactI18next.useTranslation(),
14856
+ t = _useTranslation.t;
14553
14857
  var getAcademies = function getAcademies() {
14554
14858
  try {
14555
14859
  var _temp2 = function _temp2() {
@@ -14561,8 +14865,7 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14561
14865
  setAcademyList(res.data.items || []);
14562
14866
  });
14563
14867
  }, function (error) {
14564
- var _error$response, _error$response$data;
14565
- 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");
14868
+ reactToastify.toast.error(getErrorMessage(t, error));
14566
14869
  });
14567
14870
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
14568
14871
  } catch (e) {
@@ -14588,8 +14891,7 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14588
14891
  return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {});
14589
14892
  });
14590
14893
  }, function (error) {
14591
- var _error$response2, _error$response2$data;
14592
- 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");
14894
+ reactToastify.toast.error(getErrorMessage(t, error));
14593
14895
  });
14594
14896
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
14595
14897
  } catch (e) {
@@ -14758,7 +15060,7 @@ exports.canAccessRoute = canAccess;
14758
15060
  exports.diffFromNow = diffFromNow;
14759
15061
  exports.formatTime = formatTime;
14760
15062
  exports.getAcademyDomain = getAcademyDomain;
14761
- exports.getAccessToken = getAccessToken$1;
15063
+ exports.getAccessToken = getAccessToken;
14762
15064
  exports.getErrorMessage = getErrorMessage;
14763
15065
  exports.i18n = i18n;
14764
15066
  exports.minutesToTimeSpan = minutesToTimeSpan;