touchstudy-core 0.1.47 → 0.1.49

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
@@ -39,6 +39,10 @@ var DialogTitle = _interopDefault(require('@mui/material/DialogTitle'));
39
39
  var DialogContent = _interopDefault(require('@mui/material/DialogContent'));
40
40
  var DialogActions = _interopDefault(require('@mui/material/DialogActions'));
41
41
  var Typography = _interopDefault(require('@mui/material/Typography'));
42
+ var Avatar = _interopDefault(require('@mui/material/Avatar'));
43
+ var TextField = _interopDefault(require('@mui/material/TextField'));
44
+ var Paper = _interopDefault(require('@mui/material/Paper'));
45
+ var Grid = _interopDefault(require('@mui/material/Grid'));
42
46
  var reactRouterDom = require('react-router-dom');
43
47
 
44
48
  var setLoading = toolkit.createAction("common/setLoading");
@@ -909,20 +913,25 @@ var BlockLogin = function BlockLogin(_ref) {
909
913
  console.log("error: login google", err);
910
914
  onNavigate("/login");
911
915
  };
912
- return React__default.createElement(formik.Formik, {
916
+ return React__default.createElement(material.Paper, {
917
+ elevation: 3,
918
+ className: "" + styles["box-login"]
919
+ }, React__default.createElement(material.Card, {
920
+ variant: "outlined",
921
+ sx: {
922
+ gap: 4,
923
+ p: 6,
924
+ display: 'flex',
925
+ flexDirection: 'column',
926
+ alignItems: 'center'
927
+ }
928
+ }, React__default.createElement(formik.Formik, {
913
929
  initialValues: defaultInfo,
914
930
  validationSchema: schema,
915
931
  onSubmit: function onSubmit() {}
916
932
  }, function (formikProps) {
917
933
  var handleSubmit = formikProps.handleSubmit;
918
- return React__default.createElement(material.Grid, {
919
- container: true,
920
- className: "" + styles["box-login"]
921
- }, React__default.createElement(material.Grid, {
922
- item: true,
923
- className: "p-0 d-flex justify-content-center"
924
- }, React__default.createElement("form", {
925
- className: "" + styles["block-login"],
934
+ return React__default.createElement("form", {
926
935
  onSubmit: handleSubmit
927
936
  }, React__default.createElement("div", {
928
937
  className: "" + styles["block-form"]
@@ -944,8 +953,8 @@ var BlockLogin = function BlockLogin(_ref) {
944
953
  cookiePolicy: "single_host_origin",
945
954
  className: "" + styles["btn-login-google"],
946
955
  isSignedIn: true
947
- }))))));
948
- });
956
+ }))));
957
+ })));
949
958
  };
950
959
 
951
960
  var getAccessToken$1 = (function () {
@@ -1006,7 +1015,7 @@ var Login = function Login(_ref) {
1006
1015
  var _useLogin = useLogin$1(onNavigate),
1007
1016
  defaultInfo = _useLogin.defaultInfo;
1008
1017
  return React__default.createElement("div", {
1009
- className: styles["login"] + " container-fluid font-family-lato"
1018
+ className: styles["login"] + " font-family-lato"
1010
1019
  }, React__default.createElement(material.Grid, {
1011
1020
  container: true,
1012
1021
  spacing: 3,
@@ -1456,16 +1465,22 @@ var LayoutContext = function LayoutContext(_ref) {
1456
1465
  } else if ((currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec = currentPusher.connection) === null || _currentPusher$connec === void 0 ? void 0 : _currentPusher$connec.state) === "disconnected") {
1457
1466
  currentPusher.connect();
1458
1467
  }
1459
- }
1460
- if (!pusherRegisterUrls.includes(pathname.toLocaleLowerCase()) && !!currentPusher) {
1461
- currentPusher.disconnect();
1462
- dispatch(setConcurrentConnectionPusher({
1463
- pusher: null,
1464
- academyDomain: ""
1465
- }));
1466
- }
1467
- if (!pusherRegisterUrls.includes(pathname.toLocaleLowerCase()) && isReadyRegisterPusher) {
1468
- dispatch(setReadyRegisterPusher(false));
1468
+ if (!isReadyRegisterPusher && !!currentPusher) {
1469
+ currentPusher.connection.state !== "disconnected" && currentPusher.disconnect();
1470
+ dispatch(setConcurrentConnectionPusher({
1471
+ pusher: null,
1472
+ academyDomain: ""
1473
+ }));
1474
+ }
1475
+ } else {
1476
+ if (!!currentPusher) {
1477
+ currentPusher.connection.state !== "disconnected" && currentPusher.disconnect();
1478
+ dispatch(setConcurrentConnectionPusher({
1479
+ pusher: null,
1480
+ academyDomain: ""
1481
+ }));
1482
+ }
1483
+ isReadyRegisterPusher && dispatch(setReadyRegisterPusher(false));
1469
1484
  }
1470
1485
  }, [pusherRegisterUrls.join(","), academyDomain, pathname, isReadyRegisterPusher, currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec2 = currentPusher.connection) === null || _currentPusher$connec2 === void 0 ? void 0 : _currentPusher$connec2.state]);
1471
1486
  React.useEffect(function () {
@@ -1754,7 +1769,7 @@ var useSubjectSelect = function useSubjectSelect() {
1754
1769
  var problem_solving = "수업 관리";
1755
1770
  var my_story = "내 스토리";
1756
1771
  var search_find = "검색하여 찾기";
1757
- var test_code = "시험코드 입력";
1772
+ var enter_test_code = "시험코드 입력";
1758
1773
  var login_success = "로그인 성공";
1759
1774
  var welcome_success = "스터디 터치에 오신 것을 환영합니다!";
1760
1775
  var description_success = "스터디 터치는 엄태욱 선생님의 수업에서 활용되는 학습 도구입니다.";
@@ -1779,7 +1794,7 @@ var current_time = "현재 시간";
1779
1794
  var exam_time = "시험 시간";
1780
1795
  var time_remaining = "남은 시간";
1781
1796
  var number_results = "결과 {{number}}건";
1782
- var number_result = "결과 {{number}}";
1797
+ var number_result = "결과 {{number}}";
1783
1798
  var mins_mins_seconds_seconds = "{{mins}}분 {{seconds}}초";
1784
1799
  var mins_mins = "{{mins}}분";
1785
1800
  var class_name = "반 이름";
@@ -1818,7 +1833,7 @@ var problems = "문제";
1818
1833
  var problem_solving_time = "문제풀이 시간";
1819
1834
  var minutes = "분";
1820
1835
  var correct_rate = "정확한 비율";
1821
- var title = "시험명";
1836
+ var title = "제목";
1822
1837
  var duration = "시험 시간";
1823
1838
  var answer_count = "답변 수";
1824
1839
  var question_count = "문제 갯수";
@@ -1832,7 +1847,7 @@ var select_placeholder = "선택하다...";
1832
1847
  var view_exam = "시험 보기";
1833
1848
  var back = "뒤쪽에";
1834
1849
  var edit = "편집하기";
1835
- var date_format = "YYYY년 MM월 DD일";
1850
+ var date_format = "YYYY년 MM월 DD 일";
1836
1851
  var date_time_format = "YYYY년 MM월 DD일 HH:mm";
1837
1852
  var date_time_format_12h = "YYYY-MM-DD HH:mm A";
1838
1853
  var full_date_time_format = "YYYY년 MMMM월 DD일 HH:mm:ss";
@@ -1876,6 +1891,8 @@ var the_ninth = "아홉번째";
1876
1891
  var the_tenth = "열번째";
1877
1892
  var full_name_required = "성명은 필수 항목입니다";
1878
1893
  var email_required = "이메일은 필수입니다";
1894
+ var invalid_email_address = "잘못된 이메일 주소";
1895
+ var password_required = "비밀번호가 필요합니다";
1879
1896
  var enter_full_name = "이름을 입력하세요";
1880
1897
  var enter_email = "이메일을 입력하세요";
1881
1898
  var admin = "관리자";
@@ -2107,11 +2124,75 @@ var ask_for_feedback = "피드백 요청하기";
2107
2124
  var quit = "종료하기";
2108
2125
  var chosen = "정답";
2109
2126
  var sign_in_with_your_google_account = "Google 계정으로 로그인";
2127
+ var it_will_be_generated_automatically_if_not_provided = "제공되지 않으면 자동으로 생성됩니다";
2128
+ var go_back = "돌아가기";
2129
+ var academy_not_found = "아카데미를 찾을 수 없습니다";
2130
+ var full_notice = "전체 공";
2131
+ var academy_notice = "학원 공지";
2132
+ var class_notice = "수업 공지";
2133
+ var create_account_demo = "계정 데모 만들기";
2134
+ var update_data_demo = "데이터 데모 업데이트";
2135
+ var create_account_successfully = "계정을 성공적으로 만들었습니다";
2136
+ var create_account_fail = "계정 생성 실패";
2137
+ var sign_in = "로그인";
2138
+ var password = "비밀번호";
2139
+ var email_address = "이메일 주소";
2140
+ var please_enter_your_question = "질문할 내용을 입력해주세요.";
2141
+ var test_selection = "테스트 선택";
2142
+ var half_selection = "절반 선택";
2143
+ var choose_a_problem = "문제를 선택하세요";
2144
+ var question_content = "질문 내용";
2145
+ var questions_to_ask = "질문할 문제";
2146
+ var the_problem_is_difficult = "문제가 어려워요";
2147
+ var your_questions_will_be_sent_to_the_counselor = "질문 내용이 상담사에게 전달됩니다.";
2148
+ var registration = "등록하기";
2149
+ var you_can_only_select_the_10_most_recent_exams = "최근 시험 10개만 선택 가능합니다.";
2150
+ var ask_a_question = "문제 질문하기";
2151
+ var request_a_consultation = "상담 요청하기";
2152
+ var next = "다음";
2153
+ var complete_processing = "완료 처리";
2154
+ var creation_date = "생성 날짜";
2155
+ var total_use = "총 사용량";
2156
+ var duration_header = "지속";
2157
+ var code_header = "암호";
2158
+ var total_number_of_students_participating = "참여한 총 학생 수";
2159
+ var create = "생성하기";
2160
+ var to_show = "보여주다";
2161
+ var incomplete = "미완성";
2162
+ var please_enter_your_phone_number = "전화번호를 입력해 주세요(-제외, 숫자만 입력).";
2163
+ var parent_information = "회원가입 - 학부모정보";
2164
+ var current_grade = "현재 학년";
2165
+ var liberal_arts = "문과";
2166
+ var science = "이과";
2167
+ var analysis_by_problem_solving_category = "문제풀이 카테고리별 분석";
2168
+ var time_heatmap_for_each_problem = "각 문제별 시간 히트맵";
2169
+ var learn_more = "자세히 보기";
2170
+ var total_number_of_problems = "총 문제 수";
2171
+ var time_limit = "제한시간";
2172
+ var add_questions = "문항 추가하기";
2173
+ var start_exam = "시험 시작";
2174
+ var copy_test_code = "시험 코드 복사";
2175
+ var student_has_joined = "학생이 합류했습니다:";
2176
+ var test_code = "T시험 코드";
2177
+ var academies = "아카데미";
2178
+ var new_academy = "뉴아카데미";
2179
+ var search_for = "검색...";
2180
+ var update_article = "기사 업데이트";
2181
+ var create_new_article = "새 기사 만들기";
2182
+ var article_name = "기사 이름";
2183
+ var enter_article_name = "기사 이름을 입력하세요";
2184
+ var article_content = "기사 내용";
2185
+ var new_article = "새 기사";
2186
+ var new_category = "새 분류";
2187
+ var update_category = "카테고리 업데이트";
2188
+ var create_new_category = "새 카테고리 만들기";
2189
+ var parent_category = "상위 카테고리:";
2190
+ var enter_category_name = "카테고리 이름을 입력하세요";
2110
2191
  var lang_ko = {
2111
2192
  problem_solving: problem_solving,
2112
2193
  my_story: my_story,
2113
2194
  search_find: search_find,
2114
- test_code: test_code,
2195
+ enter_test_code: enter_test_code,
2115
2196
  login_success: login_success,
2116
2197
  welcome_success: welcome_success,
2117
2198
  description_success: description_success,
@@ -2236,6 +2317,8 @@ var lang_ko = {
2236
2317
  the_tenth: the_tenth,
2237
2318
  full_name_required: full_name_required,
2238
2319
  email_required: email_required,
2320
+ invalid_email_address: invalid_email_address,
2321
+ password_required: password_required,
2239
2322
  enter_full_name: enter_full_name,
2240
2323
  enter_email: enter_email,
2241
2324
  admin: admin,
@@ -2452,13 +2535,81 @@ var lang_ko = {
2452
2535
  ask_for_feedback: ask_for_feedback,
2453
2536
  quit: quit,
2454
2537
  chosen: chosen,
2455
- sign_in_with_your_google_account: sign_in_with_your_google_account
2538
+ sign_in_with_your_google_account: sign_in_with_your_google_account,
2539
+ it_will_be_generated_automatically_if_not_provided: it_will_be_generated_automatically_if_not_provided,
2540
+ go_back: go_back,
2541
+ academy_not_found: academy_not_found,
2542
+ full_notice: full_notice,
2543
+ academy_notice: academy_notice,
2544
+ class_notice: class_notice,
2545
+ create_account_demo: create_account_demo,
2546
+ update_data_demo: update_data_demo,
2547
+ create_account_successfully: create_account_successfully,
2548
+ create_account_fail: create_account_fail,
2549
+ "update_data-successfully": "데이터를 성공적으로 업데이트했습니다.",
2550
+ "update_data-fail": "데이터 업데이트 실패",
2551
+ sign_in: sign_in,
2552
+ password: password,
2553
+ email_address: email_address,
2554
+ please_enter_your_question: please_enter_your_question,
2555
+ test_selection: test_selection,
2556
+ half_selection: half_selection,
2557
+ choose_a_problem: choose_a_problem,
2558
+ question_content: question_content,
2559
+ questions_to_ask: questions_to_ask,
2560
+ the_problem_is_difficult: the_problem_is_difficult,
2561
+ your_questions_will_be_sent_to_the_counselor: your_questions_will_be_sent_to_the_counselor,
2562
+ registration: registration,
2563
+ you_can_only_select_the_10_most_recent_exams: you_can_only_select_the_10_most_recent_exams,
2564
+ ask_a_question: ask_a_question,
2565
+ request_a_consultation: request_a_consultation,
2566
+ next: next,
2567
+ "i'm_waiting_for_the_teacher_to_start_the_test": "선생님의 시험 시작을 기다리고 있습니다...",
2568
+ complete_processing: complete_processing,
2569
+ creation_date: creation_date,
2570
+ total_use: total_use,
2571
+ duration_header: duration_header,
2572
+ code_header: code_header,
2573
+ total_number_of_students_participating: total_number_of_students_participating,
2574
+ create: create,
2575
+ to_show: to_show,
2576
+ incomplete: incomplete,
2577
+ please_enter_your_phone_number: please_enter_your_phone_number,
2578
+ parent_information: parent_information,
2579
+ current_grade: current_grade,
2580
+ "select_liberal_arts/science": "문/이과 선택",
2581
+ liberal_arts: liberal_arts,
2582
+ science: science,
2583
+ analysis_by_problem_solving_category: analysis_by_problem_solving_category,
2584
+ time_heatmap_for_each_problem: time_heatmap_for_each_problem,
2585
+ learn_more: learn_more,
2586
+ total_number_of_problems: total_number_of_problems,
2587
+ time_limit: time_limit,
2588
+ add_questions: add_questions,
2589
+ start_exam: start_exam,
2590
+ copy_test_code: copy_test_code,
2591
+ student_has_joined: student_has_joined,
2592
+ test_code: test_code,
2593
+ academies: academies,
2594
+ new_academy: new_academy,
2595
+ search_for: search_for,
2596
+ update_article: update_article,
2597
+ create_new_article: create_new_article,
2598
+ article_name: article_name,
2599
+ enter_article_name: enter_article_name,
2600
+ article_content: article_content,
2601
+ new_article: new_article,
2602
+ new_category: new_category,
2603
+ update_category: update_category,
2604
+ create_new_category: create_new_category,
2605
+ parent_category: parent_category,
2606
+ enter_category_name: enter_category_name
2456
2607
  };
2457
2608
 
2458
2609
  var problem_solving$1 = "Problem Solving";
2459
2610
  var my_story$1 = "My Story";
2460
2611
  var search_find$1 = "Search and find";
2461
- var test_code$1 = "Enter test code";
2612
+ var enter_test_code$1 = "Enter test code";
2462
2613
  var login_success$1 = "Login Success";
2463
2614
  var welcome_success$1 = "Welcome to Study Touch!";
2464
2615
  var description_success$1 = "Study Touch is a learning tool used in teacher Taewook Eom's classes.";
@@ -2617,6 +2768,8 @@ var the_ninth$1 = "The ninth";
2617
2768
  var the_tenth$1 = "The tenth";
2618
2769
  var full_name_required$1 = "Full name is required";
2619
2770
  var email_required$1 = "Email is required";
2771
+ var invalid_email_address$1 = "Invalid email address";
2772
+ var password_required$1 = "Password is required";
2620
2773
  var enter_full_name$1 = "Enter full name";
2621
2774
  var enter_email$1 = "Enter email";
2622
2775
  var admin$1 = "Admin";
@@ -2774,7 +2927,7 @@ var number_of_classes$1 = "{{ number }} classes";
2774
2927
  var complete_conversation_successfully$1 = "Complete conversation successfully";
2775
2928
  var fail_to_complete_conversation$1 = "Fail to complete conversation";
2776
2929
  var are_you_sure_you_want_to_complete_this_conversation$1 = "Are you sure you want to complete this conversation?";
2777
- var switch_academy_fail$1 = "Academy conversion failed";
2930
+ var switch_academy_fail$1 = "Switch academy failed";
2778
2931
  var no_academy_available$1 = "No academy available";
2779
2932
  var my_classes_calendar$1 = "My classes calendar";
2780
2933
  var enter_exam_code$1 = "Enter exam code";
@@ -2850,11 +3003,75 @@ var ask_for_feedback$1 = "Ask for feedback";
2850
3003
  var quit$1 = "Quit";
2851
3004
  var chosen$1 = "Answer";
2852
3005
  var sign_in_with_your_google_account$1 = "Sign in with your Google Account";
3006
+ var it_will_be_generated_automatically_if_not_provided$1 = "It will be generated automatically if not provided";
3007
+ var go_back$1 = "Go back";
3008
+ var academy_not_found$1 = "Academy not found";
3009
+ var full_notice$1 = "Full notice";
3010
+ var academy_notice$1 = "Academy Notice";
3011
+ var class_notice$1 = "Class Notice";
3012
+ var create_account_demo$1 = "Create Account Demo";
3013
+ var update_data_demo$1 = "Update Data Demo";
3014
+ var create_account_successfully$1 = "Create account successfully";
3015
+ var create_account_fail$1 = "Create account fail";
3016
+ var sign_in$1 = "Sign In";
3017
+ var password$1 = "Password";
3018
+ var email_address$1 = "Email Address";
3019
+ var please_enter_your_question$1 = "Please enter your question.";
3020
+ var test_selection$1 = "Test selection";
3021
+ var half_selection$1 = "Half selection";
3022
+ var choose_a_problem$1 = "Choose a problem";
3023
+ var question_content$1 = "Question content";
3024
+ var questions_to_ask$1 = "Questions to ask";
3025
+ var the_problem_is_difficult$1 = "The problem is difficult";
3026
+ var your_questions_will_be_sent_to_the_counselor$1 = "Your questions will be sent to the counselor.";
3027
+ var registration$1 = "Registration";
3028
+ var you_can_only_select_the_10_most_recent_exams$1 = "You can only select the 10 most recent exams.";
3029
+ var ask_a_question$1 = "Ask a question";
3030
+ var request_a_consultation$1 = "Request a consultation";
3031
+ var next$1 = "Next";
3032
+ var complete_processing$1 = "Complete processing";
3033
+ var creation_date$1 = "Creation date";
3034
+ var total_use$1 = "Total use";
3035
+ var duration_header$1 = "Duration";
3036
+ var code_header$1 = "Code";
3037
+ var total_number_of_students_participating$1 = "Total number of students participating";
3038
+ var create$1 = "Create";
3039
+ var to_show$1 = "To Show";
3040
+ var incomplete$1 = "Incomplete";
3041
+ var please_enter_your_phone_number$1 = "Please enter your phone number (enter numbers only, without -).";
3042
+ var parent_information$1 = "Membership Registration - Parent Information";
3043
+ var current_grade$1 = "Current Grade";
3044
+ var liberal_arts$1 = "Liberal arts";
3045
+ var science$1 = "Science";
3046
+ var analysis_by_problem_solving_category$1 = "Analysis by problem solving category";
3047
+ var time_heatmap_for_each_problem$1 = "Time heatmap for each problem";
3048
+ var learn_more$1 = "Learn more";
3049
+ var total_number_of_problems$1 = "Total number of problems";
3050
+ var time_limit$1 = "time_limit";
3051
+ var add_questions$1 = "Add Question";
3052
+ var start_exam$1 = "Start Exam";
3053
+ var copy_test_code$1 = "Copy Test Code";
3054
+ var student_has_joined$1 = "Student has joined:";
3055
+ var test_code$1 = "Test code";
3056
+ var academies$1 = "Academies";
3057
+ var new_academy$1 = "New Academy";
3058
+ var search_for$1 = "Search for...";
3059
+ var update_article$1 = "Update Article";
3060
+ var create_new_article$1 = "Create New Article";
3061
+ var article_name$1 = "Article Name";
3062
+ var enter_article_name$1 = "Enter Article Name";
3063
+ var article_content$1 = "Article content";
3064
+ var new_article$1 = "New article";
3065
+ var new_category$1 = "New Category";
3066
+ var update_category$1 = "Update Category";
3067
+ var create_new_category$1 = "Create New Category";
3068
+ var parent_category$1 = "Parent Category:";
3069
+ var enter_category_name$1 = "Enter Category Name";
2853
3070
  var lang_en = {
2854
3071
  problem_solving: problem_solving$1,
2855
3072
  my_story: my_story$1,
2856
3073
  search_find: search_find$1,
2857
- test_code: test_code$1,
3074
+ enter_test_code: enter_test_code$1,
2858
3075
  login_success: login_success$1,
2859
3076
  welcome_success: welcome_success$1,
2860
3077
  description_success: description_success$1,
@@ -3016,6 +3233,8 @@ var lang_en = {
3016
3233
  the_tenth: the_tenth$1,
3017
3234
  full_name_required: full_name_required$1,
3018
3235
  email_required: email_required$1,
3236
+ invalid_email_address: invalid_email_address$1,
3237
+ password_required: password_required$1,
3019
3238
  enter_full_name: enter_full_name$1,
3020
3239
  enter_email: enter_email$1,
3021
3240
  admin: admin$1,
@@ -3234,7 +3453,75 @@ var lang_en = {
3234
3453
  ask_for_feedback: ask_for_feedback$1,
3235
3454
  quit: quit$1,
3236
3455
  chosen: chosen$1,
3237
- sign_in_with_your_google_account: sign_in_with_your_google_account$1
3456
+ sign_in_with_your_google_account: sign_in_with_your_google_account$1,
3457
+ it_will_be_generated_automatically_if_not_provided: it_will_be_generated_automatically_if_not_provided$1,
3458
+ go_back: go_back$1,
3459
+ academy_not_found: academy_not_found$1,
3460
+ full_notice: full_notice$1,
3461
+ academy_notice: academy_notice$1,
3462
+ class_notice: class_notice$1,
3463
+ create_account_demo: create_account_demo$1,
3464
+ update_data_demo: update_data_demo$1,
3465
+ create_account_successfully: create_account_successfully$1,
3466
+ create_account_fail: create_account_fail$1,
3467
+ "update_data-successfully": "Update data successfully",
3468
+ "update_data-fail": "Update data fail",
3469
+ sign_in: sign_in$1,
3470
+ password: password$1,
3471
+ email_address: email_address$1,
3472
+ please_enter_your_question: please_enter_your_question$1,
3473
+ test_selection: test_selection$1,
3474
+ half_selection: half_selection$1,
3475
+ choose_a_problem: choose_a_problem$1,
3476
+ question_content: question_content$1,
3477
+ questions_to_ask: questions_to_ask$1,
3478
+ the_problem_is_difficult: the_problem_is_difficult$1,
3479
+ your_questions_will_be_sent_to_the_counselor: your_questions_will_be_sent_to_the_counselor$1,
3480
+ registration: registration$1,
3481
+ you_can_only_select_the_10_most_recent_exams: you_can_only_select_the_10_most_recent_exams$1,
3482
+ ask_a_question: ask_a_question$1,
3483
+ request_a_consultation: request_a_consultation$1,
3484
+ next: next$1,
3485
+ "i'm_waiting_for_the_teacher_to_start_the_test": "I'm waiting for the teacher to start the test...",
3486
+ complete_processing: complete_processing$1,
3487
+ creation_date: creation_date$1,
3488
+ total_use: total_use$1,
3489
+ duration_header: duration_header$1,
3490
+ code_header: code_header$1,
3491
+ total_number_of_students_participating: total_number_of_students_participating$1,
3492
+ create: create$1,
3493
+ to_show: to_show$1,
3494
+ incomplete: incomplete$1,
3495
+ please_enter_your_phone_number: please_enter_your_phone_number$1,
3496
+ parent_information: parent_information$1,
3497
+ current_grade: current_grade$1,
3498
+ "select_liberal_arts/science": "Select liberal arts/science",
3499
+ liberal_arts: liberal_arts$1,
3500
+ science: science$1,
3501
+ analysis_by_problem_solving_category: analysis_by_problem_solving_category$1,
3502
+ time_heatmap_for_each_problem: time_heatmap_for_each_problem$1,
3503
+ learn_more: learn_more$1,
3504
+ total_number_of_problems: total_number_of_problems$1,
3505
+ time_limit: time_limit$1,
3506
+ add_questions: add_questions$1,
3507
+ start_exam: start_exam$1,
3508
+ copy_test_code: copy_test_code$1,
3509
+ student_has_joined: student_has_joined$1,
3510
+ test_code: test_code$1,
3511
+ academies: academies$1,
3512
+ new_academy: new_academy$1,
3513
+ search_for: search_for$1,
3514
+ update_article: update_article$1,
3515
+ create_new_article: create_new_article$1,
3516
+ article_name: article_name$1,
3517
+ enter_article_name: enter_article_name$1,
3518
+ article_content: article_content$1,
3519
+ new_article: new_article$1,
3520
+ new_category: new_category$1,
3521
+ update_category: update_category$1,
3522
+ create_new_category: create_new_category$1,
3523
+ parent_category: parent_category$1,
3524
+ enter_category_name: enter_category_name$1
3238
3525
  };
3239
3526
 
3240
3527
  i18n.use(reactI18next.initReactI18next).init({
@@ -3382,7 +3669,7 @@ var useSwitchAcademy = function useSwitchAcademy(role, navigate, homeAcademyUrl,
3382
3669
  });
3383
3670
  }, function (error) {
3384
3671
  var _error$response, _error$response$data;
3385
- 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");
3672
+ 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");
3386
3673
  });
3387
3674
  return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
3388
3675
  } catch (e) {
@@ -8320,14 +8607,21 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
8320
8607
  }, [window.location.pathname, user === null || user === void 0 ? void 0 : user.academyDomain]);
8321
8608
  };
8322
8609
 
8610
+ var DEFAULT_PAGING_RESPONSE = {
8611
+ page: 0,
8612
+ limit: 0,
8613
+ totalItems: 0,
8614
+ totalPages: 0
8615
+ };
8616
+
8323
8617
  var useList = function useList(fetchData, defaultQuery) {
8324
8618
  var dispatch = reactRedux.useDispatch();
8325
8619
  var _useState = React.useState(defaultQuery),
8326
8620
  filter = _useState[0],
8327
8621
  setFilter = _useState[1];
8328
- var _useState2 = React.useState(0),
8329
- totalPages = _useState2[0],
8330
- setTotalPages = _useState2[1];
8622
+ var _useState2 = React.useState(DEFAULT_PAGING_RESPONSE),
8623
+ paging = _useState2[0],
8624
+ setPaging = _useState2[1];
8331
8625
  var _useState3 = React.useState([]),
8332
8626
  data = _useState3[0],
8333
8627
  setData = _useState3[1];
@@ -8351,17 +8645,19 @@ var useList = function useList(fetchData, defaultQuery) {
8351
8645
  isLoading && dispatch(setLoading(true));
8352
8646
  var _temp = _catch(function () {
8353
8647
  return Promise.resolve(fetchData(filter)).then(function (res) {
8354
- var _res$data = res.data,
8355
- _res$data$items = _res$data.items,
8356
- items = _res$data$items === void 0 ? [] : _res$data$items,
8357
- _res$data$totalPages = _res$data.totalPages,
8358
- totalPages = _res$data$totalPages === void 0 ? 0 : _res$data$totalPages;
8359
- setTotalPages(totalPages);
8648
+ var _res$data$items = res.data.items,
8649
+ items = _res$data$items === void 0 ? [] : _res$data$items;
8650
+ setPaging({
8651
+ limit: res.data.limit || 0,
8652
+ page: res.data.page || 0,
8653
+ totalItems: res.data.totalItems || 0,
8654
+ totalPages: res.data.totalPages || 0
8655
+ });
8360
8656
  setData(items);
8361
8657
  });
8362
8658
  }, function (error) {
8363
8659
  var _error$response, _error$response$data;
8364
- setTotalPages(0);
8660
+ setPaging(DEFAULT_PAGING_RESPONSE);
8365
8661
  setData([]);
8366
8662
  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");
8367
8663
  });
@@ -8394,8 +8690,8 @@ var useList = function useList(fetchData, defaultQuery) {
8394
8690
  }));
8395
8691
  };
8396
8692
  var calcOrderNumber = function calcOrderNumber(index) {
8397
- var _filter$currentPage, _filter$pageSize;
8398
- return (((_filter$currentPage = filter.currentPage) != null ? _filter$currentPage : 0) - 1) * ((_filter$pageSize = filter.pageSize) != null ? _filter$pageSize : 0) + index + 1;
8693
+ var _paging$page, _paging$limit;
8694
+ return (((_paging$page = paging.page) != null ? _paging$page : 0) - 1) * ((_paging$limit = paging.limit) != null ? _paging$limit : 0) + index + 1;
8399
8695
  };
8400
8696
  var debounceSearch = _.debounce(function () {
8401
8697
  var _textSearchRef$curren;
@@ -8410,7 +8706,7 @@ var useList = function useList(fetchData, defaultQuery) {
8410
8706
  return {
8411
8707
  filter: filter,
8412
8708
  textSearchRef: textSearchRef,
8413
- totalPages: totalPages,
8709
+ paging: paging,
8414
8710
  data: data,
8415
8711
  selectedItem: selectedItem,
8416
8712
  handleSort: handleSort,
@@ -8439,7 +8735,7 @@ var useTextbookList = function useTextbookList(props) {
8439
8735
  }, TextbookDefaultQuery),
8440
8736
  filter = _useList.filter,
8441
8737
  textSearchRef = _useList.textSearchRef,
8442
- totalPages = _useList.totalPages,
8738
+ paging = _useList.paging,
8443
8739
  textbooks = _useList.data,
8444
8740
  selectedTextbook = _useList.selectedItem,
8445
8741
  handleSort = _useList.handleSort,
@@ -8496,7 +8792,7 @@ var useTextbookList = function useTextbookList(props) {
8496
8792
  return {
8497
8793
  filter: filter,
8498
8794
  textSearchRef: textSearchRef,
8499
- totalPages: totalPages,
8795
+ paging: paging,
8500
8796
  textbooks: textbooks,
8501
8797
  selectedTextbook: selectedTextbook,
8502
8798
  handleSort: handleSort,
@@ -8621,7 +8917,7 @@ var TextbookList = function TextbookList(props) {
8621
8917
  var _useTextbookList = useTextbookList(props),
8622
8918
  filter = _useTextbookList.filter,
8623
8919
  textbooks = _useTextbookList.textbooks,
8624
- totalPages = _useTextbookList.totalPages,
8920
+ paging = _useTextbookList.paging,
8625
8921
  textSearchRef = _useTextbookList.textSearchRef,
8626
8922
  selectedTextbook = _useTextbookList.selectedTextbook,
8627
8923
  handleChangeSearchText = _useTextbookList.handleChangeSearchText,
@@ -8699,9 +8995,9 @@ var TextbookList = function TextbookList(props) {
8699
8995
  })))));
8700
8996
  }), !textbooks.length && React__default.createElement(EmptyRow, null))), React__default.createElement("div", {
8701
8997
  className: "d-flex justify-content-end mt-3"
8702
- }, !!totalPages && React__default.createElement(material.Pagination, {
8703
- count: totalPages,
8704
- page: filter.currentPage,
8998
+ }, !!paging.totalPages && React__default.createElement(material.Pagination, {
8999
+ count: paging.totalPages,
9000
+ page: paging.page,
8705
9001
  onChange: handleChangePage
8706
9002
  })))), React__default.createElement(ConfirmDialog, {
8707
9003
  open: !!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id),
@@ -13041,6 +13337,214 @@ var times = {
13041
13337
  timeSpanToLocalMoment: timeSpanToLocalMoment
13042
13338
  };
13043
13339
 
13340
+ var SIGN_IN_SUPER_ADMIN_URL = SUPER_ADMIN_BASE_URL + "/api/auth/login";
13341
+ var SIGN_IN_URL = BASE_URL + "/api/auth/login";
13342
+ var signInApi = function signInApi(_ref) {
13343
+ var email = _ref.email,
13344
+ password = _ref.password,
13345
+ role = _ref.role;
13346
+ return api.post(SIGN_IN_URL + "/demo", {
13347
+ email: email,
13348
+ password: password,
13349
+ role: role
13350
+ });
13351
+ };
13352
+ var signInSuperAdminApi = function signInSuperAdminApi(_ref2) {
13353
+ var email = _ref2.email,
13354
+ password = _ref2.password,
13355
+ role = _ref2.role;
13356
+ return api.post(SIGN_IN_SUPER_ADMIN_URL + "/demo", {
13357
+ email: email,
13358
+ password: password,
13359
+ role: role
13360
+ });
13361
+ };
13362
+
13363
+ var useLogin$2 = function useLogin(_ref) {
13364
+ var onNavigate = _ref.onNavigate,
13365
+ _ref$role = _ref.role,
13366
+ role = _ref$role === void 0 ? exports.Role.Student : _ref$role,
13367
+ homeAcademyUrl = _ref.homeAcademyUrl,
13368
+ homeUrl = _ref.homeUrl,
13369
+ registerUrl = _ref.registerUrl;
13370
+ var dispatch = reactRedux.useDispatch();
13371
+ var _useTranslation = reactI18next.useTranslation(),
13372
+ t = _useTranslation.t;
13373
+ var _useState = React.useState(""),
13374
+ emailError = _useState[0],
13375
+ setEmailError = _useState[1];
13376
+ var _useState2 = React.useState(""),
13377
+ passwordError = _useState2[0],
13378
+ setPasswordError = _useState2[1];
13379
+ var searchParams = new URLSearchParams(window.location.search);
13380
+ var paramDomain = searchParams.get('domain');
13381
+ var academyDomain = paramDomain || getAcademyDomain();
13382
+ var handleValidateForm = function handleValidateForm(_ref2) {
13383
+ var email = _ref2.email,
13384
+ password = _ref2.password;
13385
+ setEmailError("");
13386
+ setPasswordError("");
13387
+ var rs = true;
13388
+ if (email) {
13389
+ if (!/^[a-zA-Z0-9._:$!%-]+@[a-zA-Z0-9.-]+.[a-zA-Z]$/.test(email)) {
13390
+ setEmailError("Invalid email address");
13391
+ rs = false;
13392
+ }
13393
+ } else {
13394
+ setEmailError(t("email_required"));
13395
+ rs = false;
13396
+ }
13397
+ if (!password) {
13398
+ setPasswordError(t("password_required"));
13399
+ rs = false;
13400
+ }
13401
+ return rs;
13402
+ };
13403
+ var handleSubmit = function handleSubmit(event) {
13404
+ try {
13405
+ event.preventDefault();
13406
+ var data = new FormData(event.currentTarget);
13407
+ return Promise.resolve(_catch(function () {
13408
+ var email = data.get("email");
13409
+ var password = data.get("password");
13410
+ if (!handleValidateForm({
13411
+ email: email,
13412
+ password: password
13413
+ })) return;
13414
+ return Promise.resolve(academyDomain ? signInApi({
13415
+ email: email,
13416
+ password: password,
13417
+ role: role
13418
+ }) : signInSuperAdminApi({
13419
+ email: email,
13420
+ password: password,
13421
+ role: role
13422
+ })).then(function (res) {
13423
+ var loginResponse = res === null || res === void 0 ? void 0 : res.data;
13424
+ var isFirstLogin = loginResponse.isFirstLogin,
13425
+ token = loginResponse.token,
13426
+ user = loginResponse.user;
13427
+ var isAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
13428
+ var needToRegister = isFirstLogin && isAcademy;
13429
+ var redirectUrl = needToRegister ? registerUrl : isAcademy ? homeAcademyUrl : homeUrl;
13430
+ redirectLoginUser(user, token, redirectUrl);
13431
+ });
13432
+ }, function (error) {
13433
+ console.log(error);
13434
+ reactToastify.toast.error(t('request_login_fail'));
13435
+ }));
13436
+ } catch (e) {
13437
+ return Promise.reject(e);
13438
+ }
13439
+ };
13440
+ var redirectLoginUser = function redirectLoginUser(data, token, redirectUrl) {
13441
+ localStorage.setItem(ACCESS_TOKEN, token);
13442
+ !data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
13443
+ !!data.academyDomain && localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain);
13444
+ dispatch(setUser(_extends({}, data)));
13445
+ if (redirectUrl) {
13446
+ onNavigate(redirectUrl);
13447
+ }
13448
+ };
13449
+ React.useEffect(function () {
13450
+ var token = getAccessToken$1();
13451
+ if (!!token) onNavigate("/");
13452
+ }, []);
13453
+ return {
13454
+ handleSubmit: handleSubmit,
13455
+ emailError: emailError,
13456
+ passwordError: passwordError
13457
+ };
13458
+ };
13459
+
13460
+ function SignIn(_ref) {
13461
+ var onNavigate = _ref.onNavigate,
13462
+ role = _ref.role,
13463
+ homeAcademyUrl = _ref.homeAcademyUrl,
13464
+ homeUrl = _ref.homeUrl,
13465
+ registerUrl = _ref.registerUrl;
13466
+ useLanguage();
13467
+ var _useTranslation = reactI18next.useTranslation(),
13468
+ t = _useTranslation.t;
13469
+ var _useLoginWithPassword = useLogin$2({
13470
+ onNavigate: onNavigate,
13471
+ role: role,
13472
+ homeAcademyUrl: homeAcademyUrl,
13473
+ homeUrl: homeUrl,
13474
+ registerUrl: registerUrl
13475
+ }),
13476
+ handleSubmit = _useLoginWithPassword.handleSubmit,
13477
+ emailError = _useLoginWithPassword.emailError,
13478
+ passwordError = _useLoginWithPassword.passwordError;
13479
+ return React.createElement(Grid, {
13480
+ container: true,
13481
+ justifyContent: "center",
13482
+ alignItems: "center",
13483
+ height: "100vh"
13484
+ }, React.createElement(Grid, {
13485
+ item: true,
13486
+ xs: 12,
13487
+ sm: 8,
13488
+ md: 5,
13489
+ component: Paper,
13490
+ elevation: 6,
13491
+ square: true
13492
+ }, React.createElement(Box, {
13493
+ sx: {
13494
+ my: 6,
13495
+ mx: 4,
13496
+ display: 'flex',
13497
+ flexDirection: 'column',
13498
+ alignItems: 'center'
13499
+ }
13500
+ }, React.createElement(Avatar, {
13501
+ sx: {
13502
+ m: 1,
13503
+ bgcolor: styles.dark
13504
+ }
13505
+ }), React.createElement(Typography, {
13506
+ component: "h1",
13507
+ variant: "h5"
13508
+ }, t("sign_in")), React.createElement(Box, {
13509
+ noValidate: true,
13510
+ component: "form",
13511
+ onSubmit: handleSubmit,
13512
+ sx: {
13513
+ mt: 1
13514
+ }
13515
+ }, React.createElement(TextField, {
13516
+ margin: "normal",
13517
+ required: true,
13518
+ fullWidth: true,
13519
+ id: "email",
13520
+ label: t("email_address"),
13521
+ name: "email",
13522
+ autoComplete: "email",
13523
+ error: !!emailError,
13524
+ autoFocus: true,
13525
+ helperText: emailError
13526
+ }), React.createElement(TextField, {
13527
+ margin: "normal",
13528
+ required: true,
13529
+ fullWidth: true,
13530
+ name: "password",
13531
+ label: t("password"),
13532
+ type: "password",
13533
+ id: "password",
13534
+ autoComplete: "current-password",
13535
+ error: !!passwordError,
13536
+ helperText: passwordError
13537
+ }), React.createElement(Button, {
13538
+ type: "submit",
13539
+ fullWidth: true,
13540
+ variant: "contained",
13541
+ sx: {
13542
+ mt: 3,
13543
+ mb: 2
13544
+ }
13545
+ }, t("sign_in"))))));
13546
+ }
13547
+
13044
13548
  var studentFullLogoEn = function studentFullLogoEn(_ref) {
13045
13549
  var _ref$width = _ref.width,
13046
13550
  width = _ref$width === void 0 ? "166" : _ref$width,
@@ -13516,6 +14020,7 @@ exports.CustomSelect = CustomSelect;
13516
14020
  exports.CustomSelectOption = CustomSelectOption;
13517
14021
  exports.DATE_MIN_VALUE = DATE_MIN_VALUE;
13518
14022
  exports.DATE_TIME_MIN_VALUE = DATE_TIME_MIN_VALUE;
14023
+ exports.DEFAULT_PAGING_RESPONSE = DEFAULT_PAGING_RESPONSE;
13519
14024
  exports.EXAM_CHANNEL = EXAM_CHANNEL;
13520
14025
  exports.EXAM_STUDENT_CHANNEL = EXAM_STUDENT_CHANNEL;
13521
14026
  exports.Enums = index;
@@ -13527,6 +14032,7 @@ exports.LANGUAGES = LANGUAGES;
13527
14032
  exports.LayoutContext = LayoutContext;
13528
14033
  exports.Loading = Loading;
13529
14034
  exports.Login = Login;
14035
+ exports.LoginWithPassword = SignIn;
13530
14036
  exports.NotFound = NotFound;
13531
14037
  exports.PUSHER_CONFIG = PUSHER_CONFIG;
13532
14038
  exports.QuestionCountSelector = QuestionCountSelector;