touchstudy-core 0.1.60 → 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,
@@ -508,14 +503,23 @@ var pushTo = function pushTo(history, data) {
508
503
  };
509
504
 
510
505
  var getErrorMessage = function getErrorMessage(t, error, defaultErrorMessage) {
511
- var _error$response, _error$response$data, _error$response2, _error$response2$data;
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
- 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);
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);
509
+ if (typeof errorMessage === "string") return decodeURIComponent(errorMessage);
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);
515
511
  if (typeof errorMessage === "string") return errorMessage;
516
512
  return defaultErrorMessage || t(DefaultErrorMessage);
517
513
  };
518
514
 
515
+ var getRedirectUrl = function getRedirectUrl() {
516
+ try {
517
+ return localStorage.getItem(REDIRECT_URL);
518
+ } catch (err) {
519
+ return undefined;
520
+ }
521
+ };
522
+
519
523
  var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl) {
520
524
  var dispatch = reactRedux.useDispatch();
521
525
  var _useTranslation = reactI18next.useTranslation(),
@@ -598,7 +602,9 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl)
598
602
  var needToRegister = isStudent && isFirstLogin && isAcademy;
599
603
  var redirectUrl = getRedirectUrl();
600
604
  if (!redirectUrl) redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
601
- redirectLoginUser(user, token, redirectUrl);
605
+ redirectLoginUser(_extends({}, user, {
606
+ isFirstLogin: isFirstLogin
607
+ }), token, redirectUrl);
602
608
  });
603
609
  }, function (error) {
604
610
  alert(getErrorMessage(t, error));
@@ -999,14 +1005,6 @@ var BlockLogin = function BlockLogin(_ref) {
999
1005
  })));
1000
1006
  };
1001
1007
 
1002
- var getAccessToken$1 = (function () {
1003
- try {
1004
- return localStorage.getItem(ACCESS_TOKEN);
1005
- } catch (err) {
1006
- return null;
1007
- }
1008
- });
1009
-
1010
1008
  var defaultInfo = {
1011
1009
  email: "",
1012
1010
  password: "",
@@ -1036,7 +1034,7 @@ var useLogin$1 = function useLogin(history) {
1036
1034
  !!gapiScript.gapi && gapiScript.gapi.load("client:auth2", start);
1037
1035
  }, [gapiScript.gapi]);
1038
1036
  React.useEffect(function () {
1039
- var token = getAccessToken$1();
1037
+ var token = getAccessToken();
1040
1038
  if (!!token) pushTo(history, "/");
1041
1039
  }, []);
1042
1040
  return {
@@ -1322,6 +1320,7 @@ var TITLE = "Not found";
1322
1320
  var NotFound = function NotFound() {
1323
1321
  var _useTranslation = reactI18next.useTranslation(),
1324
1322
  t = _useTranslation.t;
1323
+ useLanguage();
1325
1324
  React.useEffect(function () {
1326
1325
  document.title = TITLE;
1327
1326
  });
@@ -1390,12 +1389,8 @@ var switchAcademy = function switchAcademy(academyId) {
1390
1389
  return api.post(ACADEMY_URL + "/switch-academy?academyId=" + academyId);
1391
1390
  };
1392
1391
 
1393
- var LayoutContext = function LayoutContext(_ref) {
1392
+ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls) {
1394
1393
  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
1394
  var _useGoogleSignOut = useGoogleSignOut({}),
1400
1395
  handleSignOut = _useGoogleSignOut.handleSignOut;
1401
1396
  var _useTranslation = reactI18next.useTranslation(),
@@ -1446,7 +1441,10 @@ var LayoutContext = function LayoutContext(_ref) {
1446
1441
  var checkRoleUser = React.useCallback(function () {
1447
1442
  if (!user) return;
1448
1443
  if (!roles.includes(role) && !!academyDomain) {
1449
- 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
+ }));
1450
1448
  resetAuth();
1451
1449
  }
1452
1450
  }, [role, JSON.stringify(user)]);
@@ -1481,9 +1479,10 @@ var LayoutContext = function LayoutContext(_ref) {
1481
1479
  }
1482
1480
  };
1483
1481
  var registerPusher = React.useCallback(function () {
1482
+ if (!academyDomain) return;
1484
1483
  if (pusherRegisterUrls.includes(pathname.toLocaleLowerCase())) {
1485
1484
  var _currentPusher$connec;
1486
- 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) {
1487
1486
  var _headers;
1488
1487
  if (currentPusher) {
1489
1488
  currentPusher.disconnect();
@@ -1539,6 +1538,14 @@ var LayoutContext = function LayoutContext(_ref) {
1539
1538
  }
1540
1539
  };
1541
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);
1542
1549
  return React__default.createElement(React.Fragment, null, children);
1543
1550
  };
1544
1551
 
@@ -1874,7 +1881,7 @@ var number_problem = "{{number}}문제";
1874
1881
  var problems = "문제";
1875
1882
  var problem_solving_time = "문제풀이 시간";
1876
1883
  var minutes = "분";
1877
- var correct_rate = "정확한 비율";
1884
+ var correct_rate = "정답률";
1878
1885
  var title = "제목";
1879
1886
  var duration = "시험 시간";
1880
1887
  var answer_count = "답변 수";
@@ -2185,7 +2192,7 @@ var password = "비밀번호";
2185
2192
  var email_address = "이메일 주소";
2186
2193
  var please_enter_your_question = "질문할 내용을 입력해주세요.";
2187
2194
  var test_selection = "테스트 선택";
2188
- var half_selection = "절반 선택";
2195
+ var half_selection = " 선택";
2189
2196
  var choose_a_problem = "문제를 선택하세요";
2190
2197
  var question_content = "질문 내용";
2191
2198
  var questions_to_ask = "질문할 문제";
@@ -2268,6 +2275,7 @@ var export_csv = "CSV 내보내기";
2268
2275
  var select_type = "유형 선택";
2269
2276
  var no_message = "메시지 없음";
2270
2277
  var this_is_the_guidance_text = "안내 텍스트입니다.";
2278
+ var the_page_you_are_looking_for_was_not_found = "찾으시는 페이지를 찾을 수 없습니다.";
2271
2279
  var oops = "이런! 당신이졌다.";
2272
2280
  var please_enter = "들어 오세요...";
2273
2281
  var hint = "힌트";
@@ -2327,6 +2335,67 @@ var the_code_has_been_copied_to_your_clipboard = "코드가 클립보드에 복
2327
2335
  var an_unexpected_error_has_occurred = "예상치 못한 오류가 발생했습니다";
2328
2336
  var select_roles = "역할 선택";
2329
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자리여야 합니다.";
2330
2399
  var lang_ko = {
2331
2400
  problem_solving: problem_solving,
2332
2401
  my_story: my_story,
@@ -2781,7 +2850,7 @@ var lang_ko = {
2781
2850
  select_type: select_type,
2782
2851
  no_message: no_message,
2783
2852
  this_is_the_guidance_text: this_is_the_guidance_text,
2784
- "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,
2785
2854
  oops: oops,
2786
2855
  please_enter: please_enter,
2787
2856
  hint: hint,
@@ -2841,7 +2910,68 @@ var lang_ko = {
2841
2910
  the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard,
2842
2911
  an_unexpected_error_has_occurred: an_unexpected_error_has_occurred,
2843
2912
  select_roles: select_roles,
2844
- 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
2845
2975
  };
2846
2976
 
2847
2977
  var problem_solving$1 = "Problem Solving";
@@ -3255,7 +3385,7 @@ var password$1 = "Password";
3255
3385
  var email_address$1 = "Email Address";
3256
3386
  var please_enter_your_question$1 = "Please enter your question.";
3257
3387
  var test_selection$1 = "Test selection";
3258
- var half_selection$1 = "Half selection";
3388
+ var half_selection$1 = "Selection class";
3259
3389
  var choose_a_problem$1 = "Choose a problem";
3260
3390
  var question_content$1 = "Question content";
3261
3391
  var questions_to_ask$1 = "Questions to ask";
@@ -3338,6 +3468,7 @@ var export_csv$1 = "Export csv";
3338
3468
  var select_type$1 = "Select type";
3339
3469
  var no_message$1 = "No message";
3340
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.";
3341
3472
  var oops$1 = "Oops! You are lost.";
3342
3473
  var please_enter$1 = "Please enter...";
3343
3474
  var notifications$1 = "Notifications";
@@ -3390,6 +3521,67 @@ var the_code_has_been_copied_to_your_clipboard$1 = "The code has been copied to
3390
3521
  var an_unexpected_error_has_occurred$1 = "An unexpected error has occurred";
3391
3522
  var select_roles$1 = "Select roles";
3392
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";
3393
3585
  var lang_en = {
3394
3586
  problem_solving: problem_solving$1,
3395
3587
  my_story: my_story$1,
@@ -3878,7 +4070,7 @@ var lang_en = {
3878
4070
  select_type: select_type$1,
3879
4071
  no_message: no_message$1,
3880
4072
  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.",
4073
+ the_page_you_are_looking_for_was_not_found: the_page_you_are_looking_for_was_not_found$1,
3882
4074
  oops: oops$1,
3883
4075
  please_enter: please_enter$1,
3884
4076
  notifications: notifications$1,
@@ -3931,7 +4123,68 @@ var lang_en = {
3931
4123
  the_code_has_been_copied_to_your_clipboard: the_code_has_been_copied_to_your_clipboard$1,
3932
4124
  an_unexpected_error_has_occurred: an_unexpected_error_has_occurred$1,
3933
4125
  select_roles: select_roles$1,
3934
- 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
3935
4188
  };
3936
4189
 
3937
4190
  i18n.use(reactI18next.initReactI18next).init({
@@ -4078,8 +4331,7 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4078
4331
  if (_temp && _temp.then) return _temp.then(function () {});
4079
4332
  });
4080
4333
  }, 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");
4334
+ reactToastify.toast.error(getErrorMessage(t, error));
4083
4335
  });
4084
4336
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
4085
4337
  } catch (e) {
@@ -4112,9 +4364,8 @@ var useSwitchAcademy = function useSwitchAcademy(role, history, homeAcademyUrl,
4112
4364
  return Promise.resolve(handleLoginAccessToken(requestBody, false, user.academyDomain ? academyDomain : undefined)).then(function () {});
4113
4365
  });
4114
4366
  }, function (error) {
4115
- var _error$response2, _error$response2$data;
4116
4367
  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"));
4368
+ reactToastify.toast.error(getErrorMessage(t, error));
4118
4369
  });
4119
4370
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
4120
4371
  } catch (e) {
@@ -4241,7 +4492,8 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4241
4492
  xs: 6,
4242
4493
  lg: 2,
4243
4494
  justifyContent: "center",
4244
- alignItems: "center"
4495
+ alignItems: "center",
4496
+ className: "d-sm-none d-md-flex"
4245
4497
  }, React__default.createElement(material.Stack, {
4246
4498
  flexDirection: "row",
4247
4499
  width: "100%",
@@ -4279,6 +4531,11 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4279
4531
  }
4280
4532
  }
4281
4533
  }
4534
+ }, React__default.createElement(material.MenuList, {
4535
+ sx: {
4536
+ maxHeight: 240,
4537
+ overflowY: "auto"
4538
+ }
4282
4539
  }, academyList.map(function (option) {
4283
4540
  var _option$name$charAt;
4284
4541
  return React__default.createElement(MenuItemCustom, {
@@ -4318,7 +4575,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
4318
4575
  fontWeight: 600
4319
4576
  }
4320
4577
  }, option.name))));
4321
- }), React__default.createElement(MenuItemCustom, {
4578
+ })), React__default.createElement(MenuItemCustom, {
4322
4579
  sx: {
4323
4580
  whiteSpace: "wrap",
4324
4581
  borderRadius: "6px"
@@ -4651,7 +4908,7 @@ var ChatRightItem = function ChatRightItem(_ref) {
4651
4908
  disableFocusListener: true,
4652
4909
  disableHoverListener: true,
4653
4910
  disableTouchListener: true,
4654
- placement: "top-start"
4911
+ placement: "top"
4655
4912
  }, React__default.createElement("div", {
4656
4913
  onClick: handleOpenTooltip
4657
4914
  }, React__default.createElement(iconMore, null))))), contentType ? React__default.createElement(material.Stack, {
@@ -4854,8 +5111,8 @@ var useDialog = function useDialog() {
4854
5111
  toggleDialog();
4855
5112
  reactToastify.toast.success(t("complete_conversation_successfully"));
4856
5113
  });
4857
- }, function () {
4858
- reactToastify.toast.error(t("fail_to_complete_conversation"));
5114
+ }, function (error) {
5115
+ reactToastify.toast.error(getErrorMessage(t, error, t("fail_to_complete_conversation")));
4859
5116
  });
4860
5117
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
4861
5118
  } catch (e) {
@@ -4884,11 +5141,10 @@ var useDialog = function useDialog() {
4884
5141
  setSelectedFile({
4885
5142
  content: res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.url
4886
5143
  });
4887
- reactToastify.toast.success("Upload image successfully");
5144
+ reactToastify.toast.success(t('upload_image_successfully'));
4888
5145
  });
4889
5146
  }, function (error) {
4890
- var _error$response;
4891
- reactToastify.toast.error((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
5147
+ reactToastify.toast.error(getErrorMessage(t, error));
4892
5148
  });
4893
5149
  }, function () {}));
4894
5150
  } catch (e) {
@@ -5800,6 +6056,8 @@ var useMessageList = function useMessageList() {
5800
6056
  var _useState3 = React.useState(false),
5801
6057
  isLoading = _useState3[0],
5802
6058
  setLoading = _useState3[1];
6059
+ var _useTranslation = reactI18next.useTranslation(),
6060
+ t = _useTranslation.t;
5803
6061
  var getMessageList = function getMessageList(conversationId) {
5804
6062
  try {
5805
6063
  var _temp2 = function _temp2() {
@@ -5820,8 +6078,8 @@ var useMessageList = function useMessageList() {
5820
6078
  });
5821
6079
  });
5822
6080
  });
5823
- }, function () {
5824
- reactToastify.toast.error("Fail to fetch data!");
6081
+ }, function (error) {
6082
+ reactToastify.toast.error(getErrorMessage(t, error));
5825
6083
  });
5826
6084
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
5827
6085
  } catch (e) {
@@ -5861,8 +6119,8 @@ var useMessageList = function useMessageList() {
5861
6119
  }
5862
6120
  });
5863
6121
  });
5864
- }, function () {
5865
- reactToastify.toast.error("Fail to fetch data!");
6122
+ }, function (error) {
6123
+ reactToastify.toast.error(getErrorMessage(t, error));
5866
6124
  _exit = true;
5867
6125
  });
5868
6126
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
@@ -5884,8 +6142,8 @@ var useMessageList = function useMessageList() {
5884
6142
  if (isLoading) return Promise.resolve();
5885
6143
  var _temp5 = _catch(function () {
5886
6144
  return Promise.resolve(deleteMessage(conversationId, id)).then(function () {});
5887
- }, function () {
5888
- reactToastify.toast.error("Fail to delete message!");
6145
+ }, function (error) {
6146
+ reactToastify.toast.error(getErrorMessage(t, error));
5889
6147
  _exit2 = true;
5890
6148
  });
5891
6149
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
@@ -5920,8 +6178,8 @@ var useMessageList = function useMessageList() {
5920
6178
  var _exit3 = false;
5921
6179
  var _temp7 = _catch(function () {
5922
6180
  return Promise.resolve(updateMessage(conversationId, id, message)).then(function () {});
5923
- }, function () {
5924
- reactToastify.toast.error("Fail to update message!");
6181
+ }, function (error) {
6182
+ reactToastify.toast.error(getErrorMessage(t, error));
5925
6183
  _exit3 = true;
5926
6184
  });
5927
6185
  return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
@@ -5948,6 +6206,8 @@ var useChatContainer = function useChatContainer(props) {
5948
6206
  var _selectedConversation3;
5949
6207
  var conversation = props.conversation,
5950
6208
  student = props.student;
6209
+ var _useTranslation = reactI18next.useTranslation(),
6210
+ t = _useTranslation.t;
5951
6211
  var concurrentConnectionPusher = reactRedux.useSelector(function (state) {
5952
6212
  var _state$common;
5953
6213
  return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.concurrentConnectionPusher;
@@ -6025,13 +6285,12 @@ var useChatContainer = function useChatContainer(props) {
6025
6285
  }();
6026
6286
  return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
6027
6287
  }, function (error) {
6028
- var _error$response;
6029
6288
  setMessages(function (state) {
6030
6289
  return [].concat(state.filter(function (i) {
6031
6290
  return (i === null || i === void 0 ? void 0 : i.id) !== 0;
6032
6291
  }));
6033
6292
  });
6034
- reactToastify.toast.error((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data);
6293
+ reactToastify.toast.error(getErrorMessage(t, error));
6035
6294
  });
6036
6295
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
6037
6296
  } catch (e) {
@@ -6050,13 +6309,12 @@ var useChatContainer = function useChatContainer(props) {
6050
6309
  });
6051
6310
  });
6052
6311
  }, function (error) {
6053
- var _error$response2;
6054
6312
  setMessages(function (state) {
6055
6313
  return [].concat(state.filter(function (i) {
6056
6314
  return (i === null || i === void 0 ? void 0 : i.id) !== 0;
6057
6315
  }));
6058
6316
  });
6059
- reactToastify.toast.error((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data);
6317
+ reactToastify.toast.error(getErrorMessage(t, error));
6060
6318
  });
6061
6319
  }, function () {})) : Promise.resolve();
6062
6320
  };
@@ -7216,12 +7474,14 @@ var useExam = function useExam(props) {
7216
7474
  callback === null || callback === void 0 ? void 0 : callback();
7217
7475
  };
7218
7476
  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");
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");
7222
7480
  for (var i = 0; i < exam.questions.length; i++) {
7223
7481
  var question = exam.questions[i];
7224
- 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
+ });
7225
7485
  }
7226
7486
  return false;
7227
7487
  };
@@ -7243,20 +7503,19 @@ var useExam = function useExam(props) {
7243
7503
  }))).then(function (res) {
7244
7504
  var _temp = function (_res$data, _res$data$data) {
7245
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)) {
7246
- reactToastify.toast.error("Create exam failed");
7506
+ reactToastify.toast.error(t('create_exam_failed'));
7247
7507
  } else {
7248
7508
  var _res$data2, _res$data2$data;
7249
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 () {
7250
7510
  setExamRequest(DEFAULT_EXAM_REQUEST);
7251
- reactToastify.toast.success("Create exam successfully");
7511
+ reactToastify.toast.success(t('create_exam_successfully'));
7252
7512
  });
7253
7513
  }
7254
7514
  }();
7255
7515
  if (_temp && _temp.then) return _temp.then(function () {});
7256
7516
  });
7257
7517
  }, 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");
7518
+ reactToastify.toast.error(getErrorMessage(t, error));
7260
7519
  });
7261
7520
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
7262
7521
  } catch (e) {
@@ -7280,12 +7539,11 @@ var useExam = function useExam(props) {
7280
7539
  duration: minutesToTimeSpan(examRequest.duration || 0)
7281
7540
  }))).then(function () {
7282
7541
  handleCloseDialog();
7283
- reactToastify.toast.success("Save exam successfully");
7542
+ reactToastify.toast.success(t('save_exam_successfully'));
7284
7543
  isTeacher ? navigate('/teacher/exam-list') : navigate('/exams');
7285
7544
  });
7286
7545
  }, 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");
7546
+ reactToastify.toast.error(getErrorMessage(t, error));
7289
7547
  });
7290
7548
  return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4));
7291
7549
  } catch (e) {
@@ -7373,8 +7631,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7373
7631
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7374
7632
  });
7375
7633
  }, 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");
7634
+ reactToastify.toast.error(getErrorMessage(t, error));
7378
7635
  });
7379
7636
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
7380
7637
  } catch (e) {
@@ -7408,8 +7665,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7408
7665
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7409
7666
  });
7410
7667
  }, 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");
7668
+ reactToastify.toast.error(getErrorMessage(t, error));
7413
7669
  });
7414
7670
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
7415
7671
  } catch (e) {
@@ -7428,8 +7684,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7428
7684
  callback === null || callback === void 0 ? void 0 : callback();
7429
7685
  });
7430
7686
  }, 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");
7687
+ reactToastify.toast.error(getErrorMessage(t, error));
7433
7688
  });
7434
7689
  return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
7435
7690
  } catch (e) {
@@ -7467,8 +7722,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7467
7722
  callback === null || callback === void 0 ? void 0 : callback();
7468
7723
  });
7469
7724
  }, 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");
7725
+ reactToastify.toast.error(getErrorMessage(t, error));
7472
7726
  });
7473
7727
  return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7));
7474
7728
  } catch (e) {
@@ -7498,8 +7752,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7498
7752
  callback === null || callback === void 0 ? void 0 : callback(res.data);
7499
7753
  });
7500
7754
  }, 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");
7755
+ reactToastify.toast.error(getErrorMessage(t, error));
7503
7756
  });
7504
7757
  return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
7505
7758
  } catch (e) {
@@ -7618,7 +7871,10 @@ var useTextbookDetail = function useTextbookDetail(props) {
7618
7871
  articleNumber: articleNumber,
7619
7872
  value: articles,
7620
7873
  name: "" + articleNumber,
7621
- 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
+ })
7622
7878
  });
7623
7879
  };
7624
7880
  var handleOpenRemoveChapterConfirmDialog = function handleOpenRemoveChapterConfirmDialog(chapterName, chapterId, parentChapterId) {
@@ -7630,14 +7886,20 @@ var useTextbookDetail = function useTextbookDetail(props) {
7630
7886
  chapterId: chapterId,
7631
7887
  parentChapterId: parentChapterId,
7632
7888
  name: "" + chapterName,
7633
- 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
+ })
7634
7893
  });
7635
7894
  } else {
7636
7895
  setSelectedDeleteItem({
7637
7896
  chapterId: chapterId,
7638
7897
  parentChapterId: parentChapterId,
7639
7898
  name: "" + chapterName,
7640
- 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
+ })
7641
7903
  });
7642
7904
  }
7643
7905
  };
@@ -7802,8 +8064,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7802
8064
  handleCloseChapterNameDialog();
7803
8065
  });
7804
8066
  }, 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");
8067
+ reactToastify.toast.error(getErrorMessage(t, error));
7807
8068
  });
7808
8069
  return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10));
7809
8070
  } catch (e) {
@@ -7817,11 +8078,11 @@ var useTextbookDetail = function useTextbookDetail(props) {
7817
8078
  var validateTextbook = function validateTextbook() {
7818
8079
  var _textbook$subject;
7819
8080
  if (!textbook.name.trim().length) {
7820
- reactToastify.toast.error("Textbook name is required");
8081
+ reactToastify.toast.error(t('textbook_name_is_required'));
7821
8082
  return false;
7822
8083
  }
7823
8084
  if (!((_textbook$subject = textbook.subject) !== null && _textbook$subject !== void 0 && _textbook$subject.id)) {
7824
- reactToastify.toast.error("Textbook subject is required");
8085
+ reactToastify.toast.error(t('textbook_subject_is_required'));
7825
8086
  return false;
7826
8087
  }
7827
8088
  return true;
@@ -7841,7 +8102,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7841
8102
  dispatch(setLoading(true));
7842
8103
  var _temp14 = _catch(function () {
7843
8104
  function _temp13() {
7844
- 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"));
7845
8106
  }
7846
8107
  var _temp12 = function () {
7847
8108
  if (textbook.id) {
@@ -7864,8 +8125,7 @@ var useTextbookDetail = function useTextbookDetail(props) {
7864
8125
  }();
7865
8126
  return _temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12);
7866
8127
  }, 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");
8128
+ reactToastify.toast.error(getErrorMessage(t, error));
7869
8129
  });
7870
8130
  return Promise.resolve(_temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14));
7871
8131
  } catch (e) {
@@ -7944,8 +8204,8 @@ var useTextbookDetail = function useTextbookDetail(props) {
7944
8204
  setNotFound(false);
7945
8205
  });
7946
8206
  }, 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");
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));
7949
8209
  });
7950
8210
  return Promise.resolve(_temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16));
7951
8211
  } catch (e) {
@@ -8188,7 +8448,7 @@ var ArticleDialog = function ArticleDialog(_ref) {
8188
8448
  article = _useState[0],
8189
8449
  setArticle = _useState[1];
8190
8450
  var handleSubmit = function handleSubmit() {
8191
- if (!article.categoryId) reactToastify.toast.error("Category is required");
8451
+ if (!article.categoryId) reactToastify.toast.error(t('category_is_required'));
8192
8452
  onSubmitForm(article);
8193
8453
  };
8194
8454
  var handleChangeQuestionCount = function handleChangeQuestionCount(_ref2) {
@@ -8375,6 +8635,8 @@ var SubjectSelector = function SubjectSelector(_ref) {
8375
8635
  var _state$common2, _state$common2$user;
8376
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) || [];
8377
8637
  }).includes(exports.Role.Admin) && !isDomain;
8638
+ var _useTranslation = reactI18next.useTranslation(),
8639
+ t = _useTranslation.t;
8378
8640
  var loadData = React.useCallback(function () {
8379
8641
  try {
8380
8642
  var _temp2 = function _temp2() {
@@ -8392,9 +8654,8 @@ var SubjectSelector = function SubjectSelector(_ref) {
8392
8654
  items = _res$data$items === void 0 ? [] : _res$data$items;
8393
8655
  setSubjects(items);
8394
8656
  });
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);
8657
+ }, function (error) {
8658
+ reactToastify.toast.error(getErrorMessage(t, error));
8398
8659
  });
8399
8660
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
8400
8661
  } catch (e) {
@@ -9111,7 +9372,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
9111
9372
  return;
9112
9373
  }
9113
9374
  if (!paramAcademyDomain) {
9114
- !paramAcademyDomain && searchParams.set("domain", academyDomain);
9375
+ searchParams.set("domain", academyDomain);
9115
9376
  pushTo(history, _extends({}, window.location, {
9116
9377
  search: searchParams.toString()
9117
9378
  }));
@@ -9150,6 +9411,8 @@ var useList = function useList(fetchData, defaultQuery) {
9150
9411
  setSelectedItem = _useState4[1];
9151
9412
  var textSearchRef = React.useRef(null);
9152
9413
  var isFirstLoadRef = React.useRef(true);
9414
+ var _useTranslation = reactI18next.useTranslation(),
9415
+ t = _useTranslation.t;
9153
9416
  var handleChangeSelectedItem = function handleChangeSelectedItem(item) {
9154
9417
  setSelectedItem(item);
9155
9418
  };
@@ -9176,10 +9439,9 @@ var useList = function useList(fetchData, defaultQuery) {
9176
9439
  setData(items);
9177
9440
  });
9178
9441
  }, function (error) {
9179
- var _error$response, _error$response$data;
9180
9442
  setPaging(DEFAULT_PAGING_RESPONSE);
9181
9443
  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");
9444
+ reactToastify.toast.error(getErrorMessage(t, error));
9183
9445
  });
9184
9446
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
9185
9447
  } catch (e) {
@@ -9264,6 +9526,8 @@ var useTextbookList = function useTextbookList(props) {
9264
9526
  calcOrderNumber = _useList.calcOrderNumber,
9265
9527
  handleChangeSelectedItem = _useList.handleChangeSelectedItem,
9266
9528
  getData = _useList.getData;
9529
+ var _useTranslation = reactI18next.useTranslation(),
9530
+ t = _useTranslation.t;
9267
9531
  var textbookUrl = role === exports.Role.Teacher ? TEXTBOOK_URL$1 : ADMIN_TEXTBOOK_URL;
9268
9532
  var dispatch = reactRedux.useDispatch();
9269
9533
  var handleViewTextbook = function handleViewTextbook(id) {
@@ -9301,8 +9565,7 @@ var useTextbookList = function useTextbookList(props) {
9301
9565
  });
9302
9566
  });
9303
9567
  }, 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");
9568
+ reactToastify.toast.error(getErrorMessage(t, error));
9306
9569
  });
9307
9570
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
9308
9571
  } catch (e) {
@@ -10501,8 +10764,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10501
10764
  setCategoryResponses(((_result$4$data = result[4].data) === null || _result$4$data === void 0 ? void 0 : _result$4$data.data) || []);
10502
10765
  });
10503
10766
  }, 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);
10767
+ reactToastify.toast.error(getErrorMessage(t, error));
10506
10768
  });
10507
10769
  return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
10508
10770
  };
@@ -10538,8 +10800,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10538
10800
  setCategoryResponses(((_result$4$data2 = result[4].data) === null || _result$4$data2 === void 0 ? void 0 : _result$4$data2.data) || []);
10539
10801
  });
10540
10802
  }, 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);
10803
+ reactToastify.toast.error(getErrorMessage(t, error));
10543
10804
  });
10544
10805
  return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5);
10545
10806
  };
@@ -10895,7 +11156,7 @@ var useExamResult = function useExamResult(searchParam, history, examSessionId,
10895
11156
  console.log({
10896
11157
  error: error
10897
11158
  });
10898
- reactToastify.toast.error("Print pdf failure!");
11159
+ reactToastify.toast.error(getErrorMessage(t, error));
10899
11160
  });
10900
11161
  return Promise.resolve(_temp23 && _temp23.then ? _temp23.then(_temp24) : _temp24(_temp23));
10901
11162
  } catch (e) {
@@ -12195,18 +12456,21 @@ var useMyAnswer = function useMyAnswer() {
12195
12456
  };
12196
12457
  };
12197
12458
 
12198
- var useCreateQuestionDialog = function useCreateQuestionDialog() {
12459
+ var useCreateQuestionDialog = function useCreateQuestionDialog(_ref) {
12460
+ var questions = _ref.questions;
12199
12461
  var _useState = React.useState(false),
12200
12462
  openDialog = _useState[0],
12201
12463
  setOpenDialog = _useState[1];
12202
12464
  var dispatch = reactRedux.useDispatch();
12465
+ var _useTranslation = reactI18next.useTranslation(),
12466
+ t = _useTranslation.t;
12203
12467
  var toggleDialog = function toggleDialog() {
12204
12468
  setOpenDialog(!openDialog);
12205
12469
  };
12206
- var handleCreateQuestion = function handleCreateQuestion(_ref) {
12207
- var content = _ref.content,
12208
- examSessionId = _ref.examSessionId,
12209
- questionId = _ref.questionId;
12470
+ var handleCreateQuestion = function handleCreateQuestion(_ref2) {
12471
+ var content = _ref2.content,
12472
+ examSessionId = _ref2.examSessionId,
12473
+ questionId = _ref2.questionId;
12210
12474
  try {
12211
12475
  var _temp2 = function _temp2() {
12212
12476
  dispatch(setLoading(false));
@@ -12221,18 +12485,31 @@ var useCreateQuestionDialog = function useCreateQuestionDialog() {
12221
12485
  toggleDialog();
12222
12486
  });
12223
12487
  }, 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!");
12488
+ reactToastify.toast.error(getErrorMessage(t, error));
12226
12489
  });
12227
12490
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
12228
12491
  } catch (e) {
12229
12492
  return Promise.reject(e);
12230
12493
  }
12231
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]);
12232
12508
  return {
12233
12509
  openCreateQuestionDialog: openDialog,
12234
12510
  toggleCreateQuestion: toggleDialog,
12235
- handleCreateQuestion: handleCreateQuestion
12511
+ handleCreateQuestion: handleCreateQuestion,
12512
+ questionOptions: questionOptions
12236
12513
  };
12237
12514
  };
12238
12515
 
@@ -12281,7 +12558,7 @@ function CreateNewQuestionDialog(_ref) {
12281
12558
  toggleCreateQuestion = _ref.toggleCreateQuestion,
12282
12559
  examSessionId = _ref.examSessionId,
12283
12560
  questionOrderSelected = _ref.questionOrderSelected,
12284
- questions = _ref.questions;
12561
+ questionOptions = _ref.questionOptions;
12285
12562
  var _useTranslation = reactI18next.useTranslation(),
12286
12563
  t = _useTranslation.t;
12287
12564
  return React__default.createElement(material.Dialog, {
@@ -12327,7 +12604,8 @@ function CreateNewQuestionDialog(_ref) {
12327
12604
  }));
12328
12605
  }
12329
12606
  }, function (_ref2) {
12330
- var errors = _ref2.errors;
12607
+ var errors = _ref2.errors,
12608
+ setFieldValue = _ref2.setFieldValue;
12331
12609
  return React__default.createElement(formik.Form, null, React__default.createElement(material.Box, {
12332
12610
  display: "flex",
12333
12611
  flexDirection: "column",
@@ -12337,20 +12615,22 @@ function CreateNewQuestionDialog(_ref) {
12337
12615
  htmlFor: "questions",
12338
12616
  className: styles['form-label'] + " " + styles$4['form-label-dialog']
12339
12617
  }, t('questions_to_ask')), React__default.createElement(formik.Field, {
12340
- as: "select",
12341
12618
  id: "questions",
12342
12619
  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", {
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", {
12354
12634
  htmlFor: "content-question",
12355
12635
  className: styles['form-label'] + " " + styles$4['form-label-dialog']
12356
12636
  }, t('question_content')), React__default.createElement(material.Box, {
@@ -12418,10 +12698,13 @@ function MyAnswer(_ref) {
12418
12698
  categories = _ref.categories,
12419
12699
  isStudent = _ref.isStudent,
12420
12700
  isPrint = _ref.isPrint;
12421
- var _useCreateQuestionDia = useCreateQuestionDialog(),
12701
+ var _useCreateQuestionDia = useCreateQuestionDialog({
12702
+ questions: data.questions
12703
+ }),
12422
12704
  handleCreateQuestion = _useCreateQuestionDia.handleCreateQuestion,
12423
12705
  openCreateQuestionDialog = _useCreateQuestionDia.openCreateQuestionDialog,
12424
- toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion;
12706
+ toggleCreateQuestion = _useCreateQuestionDia.toggleCreateQuestion,
12707
+ questionOptions = _useCreateQuestionDia.questionOptions;
12425
12708
  var _useMyAnswer = useMyAnswer(),
12426
12709
  isOpenTime = _useMyAnswer.isOpenTime,
12427
12710
  handleSelectQuestionOrder = _useMyAnswer.handleSelectQuestionOrder,
@@ -12635,7 +12918,7 @@ function MyAnswer(_ref) {
12635
12918
  className: styles$4["contentMyAnswer"]
12636
12919
  }, isPrint ? renderPrintQuestions(item.questions) : renderQuestions(item.questions)));
12637
12920
  }), React__default.createElement(CreateNewQuestionDialog, {
12638
- questions: data === null || data === void 0 ? void 0 : data.questions,
12921
+ questionOptions: questionOptions,
12639
12922
  questionOrderSelected: questionOrderSelected,
12640
12923
  examSessionId: data === null || data === void 0 ? void 0 : data.examSessionId,
12641
12924
  handleCreateQuestion: handleCreateQuestion,
@@ -13178,6 +13461,8 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
13178
13461
  openDialog = _useState[0],
13179
13462
  setOpenDialog = _useState[1];
13180
13463
  var dispatch = reactRedux.useDispatch();
13464
+ var _useTranslation = reactI18next.useTranslation(),
13465
+ t = _useTranslation.t;
13181
13466
  var toggleDialog = function toggleDialog() {
13182
13467
  setOpenDialog(!openDialog);
13183
13468
  };
@@ -13197,8 +13482,7 @@ var useCreateQuestionDialog$1 = function useCreateQuestionDialog() {
13197
13482
  toggleDialog();
13198
13483
  });
13199
13484
  }, 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!");
13485
+ reactToastify.toast.error(getErrorMessage(t, error));
13202
13486
  });
13203
13487
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
13204
13488
  } catch (e) {
@@ -13963,7 +14247,7 @@ var useLogin$2 = function useLogin(_ref) {
13963
14247
  });
13964
14248
  }, function (error) {
13965
14249
  console.log(error);
13966
- reactToastify.toast.error(t('request_login_fail'));
14250
+ reactToastify.toast.error(getErrorMessage(t, error, t('request_login_fail')));
13967
14251
  }));
13968
14252
  } catch (e) {
13969
14253
  return Promise.reject(e);
@@ -13977,7 +14261,7 @@ var useLogin$2 = function useLogin(_ref) {
13977
14261
  if (redirectUrl) pushTo(history, redirectUrl);
13978
14262
  };
13979
14263
  React.useEffect(function () {
13980
- var token = getAccessToken$1();
14264
+ var token = getAccessToken();
13981
14265
  if (!!token) pushTo(history, "/");
13982
14266
  }, []);
13983
14267
  return {
@@ -14451,7 +14735,10 @@ var Header = function Header(_ref) {
14451
14735
  width: "100%",
14452
14736
  display: "flex",
14453
14737
  flexDirection: "row",
14454
- gap: "24px",
14738
+ gap: {
14739
+ xs: "16",
14740
+ md: "24"
14741
+ },
14455
14742
  className: styles["tabBox"] + " " + styles["headers"]
14456
14743
  }, React__default.createElement(material.Stack, {
14457
14744
  padding: "10px 0",
@@ -14512,7 +14799,23 @@ var Header = function Header(_ref) {
14512
14799
  })), React__default.createElement(material.Stack, {
14513
14800
  direction: "row",
14514
14801
  alignItems: "center"
14515
- }, 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, {
14516
14819
  "aria-current": "page",
14517
14820
  to: homeRoute.path,
14518
14821
  className: "border-none"
@@ -14549,6 +14852,8 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14549
14852
  var _state$common, _state$common$user;
14550
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;
14551
14854
  });
14855
+ var _useTranslation = reactI18next.useTranslation(),
14856
+ t = _useTranslation.t;
14552
14857
  var getAcademies = function getAcademies() {
14553
14858
  try {
14554
14859
  var _temp2 = function _temp2() {
@@ -14560,8 +14865,7 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14560
14865
  setAcademyList(res.data.items || []);
14561
14866
  });
14562
14867
  }, 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");
14868
+ reactToastify.toast.error(getErrorMessage(t, error));
14565
14869
  });
14566
14870
  return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
14567
14871
  } catch (e) {
@@ -14587,8 +14891,7 @@ var useAcademyList = function useAcademyList(history, role, homeAcademyUrl, home
14587
14891
  return Promise.resolve(handleLoginAccessToken(requestBody, false)).then(function () {});
14588
14892
  });
14589
14893
  }, 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");
14894
+ reactToastify.toast.error(getErrorMessage(t, error));
14592
14895
  });
14593
14896
  return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
14594
14897
  } catch (e) {
@@ -14757,7 +15060,7 @@ exports.canAccessRoute = canAccess;
14757
15060
  exports.diffFromNow = diffFromNow;
14758
15061
  exports.formatTime = formatTime;
14759
15062
  exports.getAcademyDomain = getAcademyDomain;
14760
- exports.getAccessToken = getAccessToken$1;
15063
+ exports.getAccessToken = getAccessToken;
14761
15064
  exports.getErrorMessage = getErrorMessage;
14762
15065
  exports.i18n = i18n;
14763
15066
  exports.minutesToTimeSpan = minutesToTimeSpan;