touchstudy-core 0.1.96 → 0.1.97

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.
@@ -9,7 +9,7 @@ import { useDispatch, useSelector } from 'react-redux';
9
9
  import axios from 'axios';
10
10
  import { useTranslation, initReactI18next } from 'react-i18next';
11
11
  export { I18nextProvider, useTranslation } from 'react-i18next';
12
- import { Paper, Card, Stack, Box, Typography, TextField, Button, Grid, Dialog, DialogTitle, IconButton, DialogContent, DialogActions, Pagination, styled, useTheme, useMediaQuery, MenuList, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase, TableContainer, List, ListItem, Chip } from '@mui/material';
12
+ import { Paper, Card, Stack, Box, Typography, TextField, Button, Grid, Dialog, DialogTitle, IconButton, DialogContent, DialogActions, Pagination, styled, useTheme, useMediaQuery, MenuList, Tooltip, tooltipClasses, ClickAwayListener, CircularProgress, FormControl, RadioGroup, FormControlLabel, Radio, FormGroup, FormLabel, Checkbox, InputLabel, Container, Table, TableBody, TableRow, TableCell, TableHead, InputBase, List, ListItem, TableContainer, Chip } from '@mui/material';
13
13
  import { blue } from '@mui/material/colors';
14
14
  import { GoogleReCaptcha, GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';
15
15
  import { gapi } from 'gapi-script';
@@ -26,7 +26,7 @@ import MenuItem from '@mui/material/MenuItem';
26
26
  import IconButton$1 from '@mui/material/IconButton';
27
27
  import { GoArrowSwitch } from 'react-icons/go';
28
28
  import Select, { components } from 'react-select';
29
- import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye, FaShare, FaExchangeAlt, FaUpload } from 'react-icons/fa';
29
+ import { FaCaretDown, FaTrash, FaPlus, FaSave, FaPencilAlt, FaPlusCircle, FaTimes, FaSortUp, FaSortDown, FaEye, FaUpload } from 'react-icons/fa';
30
30
  import { PiDotsNineLight } from 'react-icons/pi';
31
31
  import { IoMdArrowBack } from 'react-icons/io';
32
32
  import _ from 'lodash';
@@ -114,7 +114,6 @@ var Role;
114
114
  Role["Teacher"] = "Teacher";
115
115
  Role["Admin"] = "Admin";
116
116
  Role["AcademyAdmin"] = "AcademyAdmin";
117
- Role["AcademyAdminTeacher"] = "AcademyAdminTeacher";
118
117
  })(Role || (Role = {}));
119
118
  var Language;
120
119
  (function (Language) {
@@ -2190,7 +2189,6 @@ var are_you_sure_you_want_to_delete_the_article = "정말로 기사를 삭제하
2190
2189
  var yes = "예";
2191
2190
  var no = "아니요";
2192
2191
  var cancel = "취소";
2193
- var remove = "제거하다";
2194
2192
  var confirmation = "확인";
2195
2193
  var student_name = "학생 이름";
2196
2194
  var full_pool_time = "전체풀이시간";
@@ -2800,7 +2798,6 @@ var my_classes = "내 수업";
2800
2798
  var choose = "선택하다";
2801
2799
  var additional_duration = "진행중인 시험 시간 추가하기";
2802
2800
  var enter_textbook_name_to_search = "검색할 교재명을 입력하세요";
2803
- var enter_teacher_name_to_search = "선생님 이름을 입력하여 검색하세요";
2804
2801
  var select_class_placeholder = "수업을 선택하세요...";
2805
2802
  var user_name = "유저 이름";
2806
2803
  var vulnerable_detail = "다른 학생들의 정답률은 높은데, 나는 정답을 맞추지 못한 문제들입니다.";
@@ -2917,8 +2914,6 @@ var view_records = "기록열람";
2917
2914
  var delete_action = "삭제";
2918
2915
  var edit_action = "수정";
2919
2916
  var view_action = "열람";
2920
- var update_shared_action = "업데이트 권한";
2921
- var share_action = "공유하다";
2922
2917
  var de_select = "선택 해제";
2923
2918
  var select_output = "선택 출력";
2924
2919
  var print_pdf = "PDF 인쇄";
@@ -2952,15 +2947,6 @@ var manage_users = "사용자 관리";
2952
2947
  var manage_classes = "수업 관리";
2953
2948
  var manage_notifications = "알림 관리";
2954
2949
  var late = "늦은";
2955
- var authority = "권한";
2956
- var share_textbook = "교과서 공유하기";
2957
- var notify_share_textbook = {
2958
- share_success: "교과서를 성공적으로 공유했습니다!",
2959
- share_fail: "교과서도 없고 선생님도 없어요!",
2960
- update_success: "공유 교과서가 성공적으로 업데이트되었습니다!",
2961
- update_fail: "업데이트 실패!"
2962
- };
2963
- var academyadminteacher = "아카데미 관리자/선생님";
2964
2950
  var total_student = "총 학생 수";
2965
2951
  var total_teacher = "총 교사 수";
2966
2952
  var total_exam = "총 시험 수";
@@ -3018,7 +3004,6 @@ var lang_ko = {
3018
3004
  yes: yes,
3019
3005
  no: no,
3020
3006
  cancel: cancel,
3021
- remove: remove,
3022
3007
  confirmation: confirmation,
3023
3008
  student_name: student_name,
3024
3009
  full_pool_time: full_pool_time,
@@ -3620,7 +3605,6 @@ var lang_ko = {
3620
3605
  choose: choose,
3621
3606
  additional_duration: additional_duration,
3622
3607
  enter_textbook_name_to_search: enter_textbook_name_to_search,
3623
- enter_teacher_name_to_search: enter_teacher_name_to_search,
3624
3608
  "type_at_least_{number}_characters_to_search": "검색하려면 최소 {{ number }}자를 입력하세요",
3625
3609
  select_class_placeholder: select_class_placeholder,
3626
3610
  user_name: user_name,
@@ -3736,8 +3720,6 @@ var lang_ko = {
3736
3720
  delete_action: delete_action,
3737
3721
  edit_action: edit_action,
3738
3722
  view_action: view_action,
3739
- update_shared_action: update_shared_action,
3740
- share_action: share_action,
3741
3723
  de_select: de_select,
3742
3724
  select_output: select_output,
3743
3725
  print_pdf: print_pdf,
@@ -3771,10 +3753,6 @@ var lang_ko = {
3771
3753
  manage_classes: manage_classes,
3772
3754
  manage_notifications: manage_notifications,
3773
3755
  late: late,
3774
- authority: authority,
3775
- share_textbook: share_textbook,
3776
- notify_share_textbook: notify_share_textbook,
3777
- academyadminteacher: academyadminteacher,
3778
3756
  total_student: total_student,
3779
3757
  total_teacher: total_teacher,
3780
3758
  total_exam: total_exam,
@@ -3831,7 +3809,6 @@ var are_you_sure_you_want_to_delete_the_article$1 = "Are you sure you want to de
3831
3809
  var yes$1 = "Yes";
3832
3810
  var no$1 = "No";
3833
3811
  var cancel$1 = "Cancel";
3834
- var remove$1 = "Remove";
3835
3812
  var confirmation$1 = "Confirmation";
3836
3813
  var student_name$1 = "Student name";
3837
3814
  var full_pool_time$1 = "Full pool time";
@@ -4094,7 +4071,6 @@ var parent_name$1 = "Parent name";
4094
4071
  var users$1 = "Users";
4095
4072
  var new_user$1 = "New user";
4096
4073
  var academy_admin$1 = "Academy Admin";
4097
- var academy_admin_teacher = "Academy Admin / Teacher";
4098
4074
  var super_admin$1 = "Super Admin";
4099
4075
  var switch_academy_admin$1 = "Switch Academy Admin";
4100
4076
  var switch_academy$1 = "Switch Academy";
@@ -4443,7 +4419,6 @@ var my_classes$1 = "My Classes";
4443
4419
  var choose$1 = "Choose";
4444
4420
  var additional_duration$1 = "Additional duration";
4445
4421
  var enter_textbook_name_to_search$1 = "Enter textbook name to search";
4446
- var enter_teacher_name_to_search$1 = "Enter teacher name to search";
4447
4422
  var select_class_placeholder$1 = "Select class...";
4448
4423
  var user_name$1 = "User Name";
4449
4424
  var vulnerable_detail$1 = "Other students had a high percentage of correct answers, but I could not answer these questions correctly.";
@@ -4560,8 +4535,6 @@ var view_records$1 = "View records";
4560
4535
  var delete_action$1 = "Delete";
4561
4536
  var edit_action$1 = "Edit";
4562
4537
  var view_action$1 = "View";
4563
- var share_action$1 = "Share";
4564
- var update_shared_action$1 = "Update Authority";
4565
4538
  var de_select$1 = "Deselect";
4566
4539
  var select_output$1 = "Select";
4567
4540
  var print_pdf$1 = "Print PDF";
@@ -4595,15 +4568,6 @@ var manage_users$1 = "Manage users";
4595
4568
  var manage_classes$1 = "Manage classes";
4596
4569
  var manage_notifications$1 = "Manage notifications";
4597
4570
  var late$1 = "Late";
4598
- var authority$1 = "Authority";
4599
- var share_textbook$1 = "Share textbook";
4600
- var notify_share_textbook$1 = {
4601
- share_success: "Share textbook successfully!",
4602
- share_fail: "Textbook or teacher not exists!",
4603
- update_success: "Update shared textbook successfully!",
4604
- update_fail: "Update fail!"
4605
- };
4606
- var academyadminteacher$1 = "AcademyAdmin / Teacher";
4607
4571
  var total_student$1 = "Total Student";
4608
4572
  var total_teacher$1 = "Total Teacher";
4609
4573
  var total_exam$1 = "Total Exam";
@@ -4661,7 +4625,6 @@ var lang_en = {
4661
4625
  yes: yes$1,
4662
4626
  no: no$1,
4663
4627
  cancel: cancel$1,
4664
- remove: remove$1,
4665
4628
  confirmation: confirmation$1,
4666
4629
  student_name: student_name$1,
4667
4630
  full_pool_time: full_pool_time$1,
@@ -4921,7 +4884,6 @@ var lang_en = {
4921
4884
  users: users$1,
4922
4885
  new_user: new_user$1,
4923
4886
  academy_admin: academy_admin$1,
4924
- academy_admin_teacher: academy_admin_teacher,
4925
4887
  super_admin: super_admin$1,
4926
4888
  switch_academy_admin: switch_academy_admin$1,
4927
4889
  switch_academy: switch_academy$1,
@@ -5265,7 +5227,6 @@ var lang_en = {
5265
5227
  choose: choose$1,
5266
5228
  additional_duration: additional_duration$1,
5267
5229
  enter_textbook_name_to_search: enter_textbook_name_to_search$1,
5268
- enter_teacher_name_to_search: enter_teacher_name_to_search$1,
5269
5230
  "type_at_least_{number}_characters_to_search": "Type at least {{ number }} characters to search",
5270
5231
  select_class_placeholder: select_class_placeholder$1,
5271
5232
  user_name: user_name$1,
@@ -5381,8 +5342,6 @@ var lang_en = {
5381
5342
  delete_action: delete_action$1,
5382
5343
  edit_action: edit_action$1,
5383
5344
  view_action: view_action$1,
5384
- share_action: share_action$1,
5385
- update_shared_action: update_shared_action$1,
5386
5345
  de_select: de_select$1,
5387
5346
  select_output: select_output$1,
5388
5347
  print_pdf: print_pdf$1,
@@ -5416,10 +5375,6 @@ var lang_en = {
5416
5375
  manage_classes: manage_classes$1,
5417
5376
  manage_notifications: manage_notifications$1,
5418
5377
  late: late$1,
5419
- authority: authority$1,
5420
- share_textbook: share_textbook$1,
5421
- notify_share_textbook: notify_share_textbook$1,
5422
- academyadminteacher: academyadminteacher$1,
5423
5378
  total_student: total_student$1,
5424
5379
  total_teacher: total_teacher$1,
5425
5380
  total_exam: total_exam$1,
@@ -7000,13 +6955,11 @@ var formatRole = function formatRole(roles, t) {
7000
6955
  if (roles.includes(Role.AcademyAdmin)) return t("academy_admin");
7001
6956
  if (roles.includes(Role.Teacher)) return t("teacher");
7002
6957
  if (roles.includes(Role.Student)) return t("student");
7003
- if (roles.includes(Role.AcademyAdminTeacher)) return t("academy_admin_teacher");
7004
6958
  return "";
7005
6959
  };
7006
6960
  var getRole = function getRole(roles) {
7007
6961
  if (roles.includes(Role.Admin)) return Role.Admin;
7008
6962
  if (roles.includes(Role.AcademyAdmin)) return Role.AcademyAdmin;
7009
- if (roles.includes(Role.AcademyAdminTeacher)) return Role.AcademyAdminTeacher;
7010
6963
  if (roles.includes(Role.Teacher)) return Role.Teacher;
7011
6964
  if (roles.includes(Role.Student)) return Role.Student;
7012
6965
  return null;
@@ -7441,8 +7394,10 @@ var useMessageList = function useMessageList(_ref) {
7441
7394
  var _state$common, _state$common$user;
7442
7395
  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.roles) || [];
7443
7396
  });
7444
- var isTeacher = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Teacher);
7445
- var isFirst = true;
7397
+ var isAdmin = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Admin);
7398
+ var isTeacher = (roles === null || roles === void 0 ? void 0 : roles.includes(Role.Teacher)) && !isAdmin;
7399
+ var isStudent = !isTeacher && !isAdmin;
7400
+ var firstRef = useRef(true);
7446
7401
  var getMessageList = function getMessageList(conversationId) {
7447
7402
  try {
7448
7403
  var _temp3 = function _temp3() {
@@ -7462,14 +7417,14 @@ var useMessageList = function useMessageList(_ref) {
7462
7417
  });
7463
7418
  });
7464
7419
  var _temp = function () {
7465
- if (isFirst && isTeacher) {
7420
+ if (firstRef.current && !isStudent) {
7466
7421
  return Promise.resolve(createRecentUserActionListApi({
7467
7422
  userId: (student === null || student === void 0 ? void 0 : student.id) || 0,
7468
7423
  action: RecentUserAction$1.ViewedQNA,
7469
7424
  data: "" + conversationId,
7470
- isAdmin: !isTeacher
7425
+ isAdmin: false
7471
7426
  })).then(function () {
7472
- isFirst = false;
7427
+ firstRef.current = false;
7473
7428
  });
7474
7429
  }
7475
7430
  }();
@@ -8613,12 +8568,6 @@ var updateTextbookApi = function updateTextbookApi(textbookId, data) {
8613
8568
  var deleteTextbookApi = function deleteTextbookApi(textbookId) {
8614
8569
  return api["delete"](TEXTBOOK_URL + "/" + textbookId);
8615
8570
  };
8616
- var shareTextbookApi = function shareTextbookApi(textbookId, data) {
8617
- return api.post(TEXTBOOK_URL + "/" + textbookId + "/shared-textbook", data);
8618
- };
8619
- var updateSharedTextbookApi = function updateSharedTextbookApi(textbookId, data) {
8620
- return api.put(TEXTBOOK_URL + "/" + textbookId + "/shared-textbook", data);
8621
- };
8622
8571
 
8623
8572
  var ExamStatus$1;
8624
8573
  (function (ExamStatus) {
@@ -8672,13 +8621,6 @@ var TextbookSortBy;
8672
8621
  TextbookSortBy["Title"] = "Name";
8673
8622
  TextbookSortBy["SubjectName"] = "Subject.Name";
8674
8623
  })(TextbookSortBy || (TextbookSortBy = {}));
8675
- var TeacherSortBy;
8676
- (function (TeacherSortBy) {
8677
- TeacherSortBy["CreatedAt"] = "CreatedAt";
8678
- TeacherSortBy["Name"] = "UserProfile.FullName";
8679
- TeacherSortBy["Email"] = "Email";
8680
- TeacherSortBy["PhoneNumber"] = "UserProfile.PhoneNumber";
8681
- })(TeacherSortBy || (TeacherSortBy = {}));
8682
8624
  var ExamType;
8683
8625
  (function (ExamType) {
8684
8626
  ExamType["Normal"] = "Normal";
@@ -8692,12 +8634,6 @@ var ExamStatus$2;
8692
8634
  ExamStatus["Completed"] = "Completed";
8693
8635
  })(ExamStatus$2 || (ExamStatus$2 = {}));
8694
8636
 
8695
- var DefaultTeacherQuery = {
8696
- currentPage: 1,
8697
- pageSize: 50,
8698
- sortColumnDirection: OrderType.DESC,
8699
- sortColumnName: TeacherSortBy.Name
8700
- };
8701
8637
  var TEXTBOOK_HEADERS = [{
8702
8638
  title: "#"
8703
8639
  }, {
@@ -8712,26 +8648,7 @@ var TEXTBOOK_HEADERS = [{
8712
8648
  }, {
8713
8649
  title: "total_chapters"
8714
8650
  }, {
8715
- title: "authority"
8716
- }, {
8717
- title: ["edit_action", "view_action", "share_action", "update_shared_action", "delete_action"]
8718
- }];
8719
- var TEACHER_ACADEMY_HEADERS = [{
8720
- title: ""
8721
- }, {
8722
- title: "#"
8723
- }, {
8724
- title: "full_name",
8725
- sortKey: TeacherSortBy.Name
8726
- }, {
8727
- title: "email",
8728
- sortKey: TeacherSortBy.Email
8729
- }, {
8730
- title: "phone_number",
8731
- sortKey: TeacherSortBy.PhoneNumber
8732
- }, {
8733
- title: "created_at",
8734
- sortKey: TeacherSortBy.CreatedAt
8651
+ title: ["edit_action", "view_action", "delete_action"]
8735
8652
  }];
8736
8653
  var DEFAULT_ANSWER_COUNT = 5;
8737
8654
  var DEFAULT_EXAM_REQUEST = {
@@ -8748,7 +8665,6 @@ var DEFAULT_EXAM_REQUEST = {
8748
8665
  };
8749
8666
  var TEXTBOOK_PAGE_TITLE = "textbooks";
8750
8667
  var TEXT_BOOK_SEARCH_PLACEHOLDER = "enter_textbook_name_to_search";
8751
- var TEACHER_SEARCH_PLACEHOLDER = "enter_teacher_name_to_search";
8752
8668
  var TextbookDefaultQuery = {
8753
8669
  pageSize: 12,
8754
8670
  currentPage: 1,
@@ -11015,7 +10931,9 @@ var useTextbookList = function useTextbookList(props) {
11015
10931
  });
11016
10932
  };
11017
10933
  var handleCreateTextbook = function handleCreateTextbook() {
11018
- pushTo(navigate, textbookUrl + "/create");
10934
+ navigate(textbookUrl + "/create", {
10935
+ replace: true
10936
+ });
11019
10937
  };
11020
10938
  var toggleConfirmDialog = function toggleConfirmDialog() {
11021
10939
  handleChangeSelectedItem(undefined);
@@ -11050,7 +10968,6 @@ var useTextbookList = function useTextbookList(props) {
11050
10968
  return {
11051
10969
  filter: filter,
11052
10970
  textSearchRef: textSearchRef,
11053
- getData: getData,
11054
10971
  paging: paging,
11055
10972
  textbooks: textbooks,
11056
10973
  selectedTextbook: selectedTextbook,
@@ -11172,361 +11089,17 @@ var SearchInput = function SearchInput(_ref) {
11172
11089
  }));
11173
11090
  };
11174
11091
 
11175
- var ShareToTeacherDialog = function ShareToTeacherDialog(_ref) {
11176
- var open = _ref.open,
11177
- selectedShare = _ref.selectedShare,
11178
- textSearchShareRef = _ref.textSearchShareRef,
11179
- handleChangeSearchTextShare = _ref.handleChangeSearchTextShare,
11180
- numSelectedShare = _ref.numSelectedShare,
11181
- isCheckAllShare = _ref.isCheckAllShare,
11182
- handleSelectAllClickShare = _ref.handleSelectAllClickShare,
11183
- teachers = _ref.teachers,
11184
- handleSortShare = _ref.handleSortShare,
11185
- filterShare = _ref.filterShare,
11186
- pagingShare = _ref.pagingShare,
11187
- handleChangePageShare = _ref.handleChangePageShare,
11188
- handleShareModel = _ref.handleShareModel,
11189
- isSelectedShare = _ref.isSelectedShare,
11190
- handleCloseShareDialog = _ref.handleCloseShareDialog,
11191
- handleClickCheckboxShare = _ref.handleClickCheckboxShare,
11192
- selectedTeacher = _ref.selectedTeacher,
11193
- dataId = _ref.dataId,
11194
- isUpdate = _ref.isUpdate;
11195
- var _useTranslation = useTranslation(),
11196
- t = _useTranslation.t;
11197
- var theme = useTheme();
11198
- return React__default.createElement(Dialog, {
11199
- open: open,
11200
- maxWidth: "md"
11201
- }, React__default.createElement(DialogContent, {
11202
- sx: {
11203
- overflowY: "unset"
11204
- }
11205
- }, React__default.createElement(Grid, {
11206
- container: true,
11207
- spacing: 3,
11208
- sx: {
11209
- position: "relative",
11210
- zIndex: 999999
11211
- }
11212
- }, selectedShare && React__default.createElement(Grid, {
11213
- item: true,
11214
- xs: 6,
11215
- className: "d-flex mb-3"
11216
- }, React__default.createElement(SearchInput, {
11217
- placeholder: t(TEACHER_SEARCH_PLACEHOLDER),
11218
- textSearchRef: textSearchShareRef,
11219
- onChange: handleChangeSearchTextShare
11220
- })), React__default.createElement(Grid, {
11221
- item: true,
11222
- xs: 12
11223
- }, React__default.createElement(TableContainer, {
11224
- sx: {
11225
- maxHeight: "50vh"
11226
- }
11227
- }, React__default.createElement(Table, {
11228
- stickyHeader: true
11229
- }, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, selectedShare && React__default.createElement(TableCell, {
11230
- padding: "checkbox"
11231
- }, React__default.createElement(Checkbox, {
11232
- color: "primary",
11233
- checked: numSelectedShare > 0 && isCheckAllShare(teachers.length),
11234
- onChange: handleSelectAllClickShare
11235
- })), TEACHER_ACADEMY_HEADERS.map(function (i, index) {
11236
- return selectedShare && index === 0 ? null : React__default.createElement(TableCell, {
11237
- key: index,
11238
- onClick: !!i.sortKey ? function () {
11239
- return handleSortShare(i.sortKey);
11240
- } : undefined,
11241
- className: "" + (!!i.sortKey && "pointer")
11242
- }, React__default.createElement("div", {
11243
- className: "d-flex justify-content-between align-items-center text-nowrap"
11244
- }, t(i.title), !!i.sortKey && selectedShare && React__default.createElement(SortIcon, {
11245
- isAscending: filterShare.sortColumnName !== i.sortKey ? undefined : filterShare.sortColumnDirection === OrderType.ASC
11246
- })));
11247
- }))), React__default.createElement(TableBody, null, selectedTeacher ? React__default.createElement(TableRow, null, React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.teacherName), React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.teacherEmail), React__default.createElement(TableCell, null, selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(selectedTeacher === null || selectedTeacher === void 0 ? void 0 : selectedTeacher.createdAt, t("date_time_format")))) : teachers.map(function (i, index) {
11248
- var isItemSelected = isSelectedShare(i.id);
11249
- return React__default.createElement(TableRow, {
11250
- key: i.id
11251
- }, React__default.createElement(TableCell, {
11252
- padding: "checkbox"
11253
- }, React__default.createElement(Checkbox, {
11254
- onClick: function onClick() {
11255
- return handleClickCheckboxShare(i.id);
11256
- },
11257
- color: "primary",
11258
- checked: isItemSelected
11259
- })), React__default.createElement(TableCell, null, (pagingShare.page - 1) * pagingShare.limit + index + 1), React__default.createElement(TableCell, null, i.teacherName), React__default.createElement(TableCell, null, i.teacherEmail), React__default.createElement(TableCell, null, i.phoneNumber), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))));
11260
- }), !selectedShare && !teachers.length && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
11261
- colSpan: 12,
11262
- className: "text-center text-muted"
11263
- }, t("no_data")))))), React__default.createElement("div", {
11264
- className: "d-flex justify-content-end mt-4"
11265
- }, !!pagingShare.totalPages && !selectedShare && React__default.createElement(Pagination, {
11266
- count: pagingShare.totalPages,
11267
- page: pagingShare.page,
11268
- onChange: handleChangePageShare
11269
- }))))), React__default.createElement(DialogActions, null, React__default.createElement(Stack, {
11270
- direction: "row",
11271
- spacing: 2,
11272
- p: 2,
11273
- pt: 0,
11274
- justifyContent: "end"
11275
- }, React__default.createElement(Button, {
11276
- color: "primary",
11277
- variant: "contained",
11278
- type: "submit",
11279
- disabled: selectedShare.length === 0 && numSelectedShare === 0,
11280
- onClick: function onClick() {
11281
- return handleShareModel(selectedShare, dataId);
11282
- }
11283
- }, !isUpdate ? t("submit") : t("remove")), React__default.createElement(Button, {
11284
- sx: {
11285
- bgcolor: theme.palette.grey[700]
11286
- },
11287
- color: "secondary",
11288
- variant: "contained",
11289
- onClick: handleCloseShareDialog
11290
- }, t("cancel")))));
11291
- };
11292
-
11293
- var TEACHER_URL = BASE_URL + "/api/teacher";
11294
- var getTeacherListApi = function getTeacherListApi(query) {
11295
- return api.get("" + TEACHER_URL, {
11296
- params: query
11297
- });
11298
- };
11299
-
11300
- var useTextbookShare = function useTextbookShare(props) {
11301
- var getData = props.getData;
11302
- var _useList = useList(function (search) {
11303
- return getTeacherListApi(search);
11304
- }, DefaultTeacherQuery),
11305
- filterShare = _useList.filter,
11306
- textSearchShareRef = _useList.textSearchRef,
11307
- pagingShare = _useList.paging,
11308
- selectedTeacher = _useList.selectedItem,
11309
- teachers = _useList.data,
11310
- handleSortShare = _useList.handleSort,
11311
- handleChangeSearchTextShare = _useList.handleChangeSearchText,
11312
- handleChangePageShare = _useList.handleChangePage;
11313
- var _useState = useState([]),
11314
- selectedShare = _useState[0],
11315
- setSelectedShare = _useState[1];
11316
- var _useState2 = useState([]),
11317
- notShared = _useState2[0],
11318
- setNotShared = _useState2[1];
11319
- var _useState3 = useState([]),
11320
- shared = _useState3[0],
11321
- setShared = _useState3[1];
11322
- var _useState4 = useState(false),
11323
- isUpdate = _useState4[0],
11324
- setIsUpdate = _useState4[1];
11325
- var _useState5 = useState(),
11326
- currentModel = _useState5[0],
11327
- setCurrentModel = _useState5[1];
11328
- var isSelectedShare = function isSelectedShare(id) {
11329
- return selectedShare.indexOf(id) !== -1;
11330
- };
11331
- var _useState6 = useState(false),
11332
- openShareDialog = _useState6[0],
11333
- setOpenShareDialog = _useState6[1];
11334
- var _useTranslation = useTranslation(),
11335
- t = _useTranslation.t;
11336
- var dispatch = useDispatch();
11337
- var infoUser = useSelector(function (state) {
11338
- var _state$common;
11339
- return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user) || {};
11340
- });
11341
- useEffect(function () {
11342
- if (!isUpdate) {
11343
- filterTeacherNotShared(currentModel);
11344
- } else {
11345
- filterTeacherShared(currentModel);
11346
- }
11347
- }, [teachers, isUpdate]);
11348
- var handleOpenShareDialog = function handleOpenShareDialog(textbook) {
11349
- setIsUpdate(false);
11350
- setOpenShareDialog(true);
11351
- setCurrentModel(textbook);
11352
- filterTeacherNotShared(textbook);
11353
- };
11354
- var filterTeacherNotShared = function filterTeacherNotShared(textbook) {
11355
- var sharedTeacherTextbook = textbook === null || textbook === void 0 ? void 0 : textbook.sharedUsers;
11356
- var teacherNotShared = teachers.filter(function (teacher) {
11357
- return !(sharedTeacherTextbook !== null && sharedTeacherTextbook !== void 0 && sharedTeacherTextbook.includes(teacher.teacherEmail.trim().toUpperCase())) && teacher.teacherEmail.trim().toUpperCase() != (textbook === null || textbook === void 0 ? void 0 : textbook.createdBy.email.trim().toUpperCase());
11358
- });
11359
- setNotShared(teacherNotShared);
11360
- };
11361
- var filterTeacherShared = function filterTeacherShared(textbook) {
11362
- var sharedTeacherTextbook = textbook === null || textbook === void 0 ? void 0 : textbook.sharedUsers;
11363
- var teacherShared = teachers.filter(function (teacher) {
11364
- return (sharedTeacherTextbook === null || sharedTeacherTextbook === void 0 ? void 0 : sharedTeacherTextbook.includes(teacher.teacherEmail.trim().toUpperCase())) && teacher.teacherEmail.trim().toUpperCase() != (textbook === null || textbook === void 0 ? void 0 : textbook.createdBy.email.trim().toUpperCase());
11365
- });
11366
- setShared(teacherShared);
11367
- };
11368
- var handleCloseShareDialog = function handleCloseShareDialog() {
11369
- setOpenShareDialog(false);
11370
- setSelectedShare([]);
11371
- };
11372
- var handleOpenUpdateShareDialog = function handleOpenUpdateShareDialog(textbook) {
11373
- setIsUpdate(true);
11374
- setOpenShareDialog(true);
11375
- setCurrentModel(textbook);
11376
- filterTeacherShared(textbook);
11377
- };
11378
- var handleSelectAllClickShare = function handleSelectAllClickShare(event) {
11379
- var newSelected = isUpdate ? shared.map(function (n) {
11380
- return n.id;
11381
- }) : notShared.map(function (n) {
11382
- return n.id;
11383
- });
11384
- if (event.target.checked) {
11385
- setSelectedShare(function (prev) {
11386
- return _.uniq([].concat(prev, newSelected));
11387
- });
11388
- return;
11389
- }
11390
- setSelectedShare(_.difference(selectedShare, newSelected));
11391
- };
11392
- var isCheckAllShare = function isCheckAllShare(userLength) {
11393
- var newSelected = isUpdate ? shared.map(function (n) {
11394
- return n.id;
11395
- }) : notShared.map(function (n) {
11396
- return n.id;
11397
- });
11398
- var checkLength = _.intersection(selectedShare, newSelected).length;
11399
- return checkLength === userLength;
11400
- };
11401
- var handleClickCheckboxShare = function handleClickCheckboxShare(id) {
11402
- var selectedIndex = selectedShare.indexOf(id);
11403
- var newSelected = [];
11404
- if (selectedIndex === -1) {
11405
- newSelected = newSelected.concat(selectedShare, id);
11406
- } else if (selectedIndex === 0) {
11407
- newSelected = newSelected.concat(selectedShare.slice(1));
11408
- } else if (selectedIndex === selectedShare.length - 1) {
11409
- newSelected = newSelected.concat(selectedShare.slice(0, -1));
11410
- } else if (selectedIndex > 0) {
11411
- newSelected = newSelected.concat(selectedShare.slice(0, selectedIndex), selectedShare.slice(selectedIndex + 1));
11412
- }
11413
- setSelectedShare(newSelected);
11414
- };
11415
- var updateTeacherNotShared = function updateTeacherNotShared(teacherIds) {
11416
- var removeTeachers = notShared.filter(function (teacher) {
11417
- return !teacherIds.includes(teacher.id);
11418
- });
11419
- setNotShared(removeTeachers);
11420
- };
11421
- var updateTeacherShared = function updateTeacherShared(teacherIds) {
11422
- var existsTeachers = shared.filter(function (teacher) {
11423
- return !teacherIds.includes(teacher.id);
11424
- });
11425
- setShared(existsTeachers);
11426
- };
11427
- var handleDisableShare = function handleDisableShare(textbook) {
11428
- return !textbook.isShared || textbook.sharedUsers.map(function (item) {
11429
- return item.trim();
11430
- }).filter(function (item) {
11431
- return item !== "";
11432
- }).includes(infoUser.email || "");
11433
- };
11434
- var handleShareTextbook = function handleShareTextbook(teacherIds, textbookId) {
11435
- try {
11436
- var _temp2 = function _temp2() {
11437
- dispatch(setLoading(false));
11438
- setSelectedShare([]);
11439
- setOpenShareDialog(false);
11440
- };
11441
- dispatch(setLoading(true));
11442
- var _temp = _catch(function () {
11443
- return Promise.resolve(shareTextbookApi(textbookId, {
11444
- teacherIds: teacherIds
11445
- })).then(function () {
11446
- updateTeacherNotShared(teacherIds);
11447
- setSelectedShare([]);
11448
- return Promise.resolve(getData(false)).then(function () {
11449
- toast.success(t("notify_share_textbook.share_success"));
11450
- });
11451
- });
11452
- }, function (error) {
11453
- toast.error(getErrorMessage(t, error, t("notify_share_textbook.share_fail")));
11454
- });
11455
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
11456
- } catch (e) {
11457
- return Promise.reject(e);
11458
- }
11459
- };
11460
- var handleUpdateSharedTextbook = function handleUpdateSharedTextbook(teacherIds, textbookId) {
11461
- try {
11462
- var _temp4 = function _temp4() {
11463
- dispatch(setLoading(false));
11464
- setSelectedShare([]);
11465
- setOpenShareDialog(false);
11466
- };
11467
- dispatch(setLoading(true));
11468
- var _temp3 = _catch(function () {
11469
- return Promise.resolve(updateSharedTextbookApi(textbookId, {
11470
- teacherIds: teacherIds
11471
- })).then(function () {
11472
- updateTeacherShared(teacherIds);
11473
- setSelectedShare([]);
11474
- return Promise.resolve(getData(false)).then(function () {
11475
- toast.success(t("notify_share_textbook.update_success"));
11476
- });
11477
- });
11478
- }, function (error) {
11479
- toast.error(getErrorMessage(t, error, t("notify_share_textbook.update_fail")));
11480
- });
11481
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
11482
- } catch (e) {
11483
- return Promise.reject(e);
11484
- }
11485
- };
11486
- return {
11487
- filterShare: filterShare,
11488
- textSearchShareRef: textSearchShareRef,
11489
- pagingShare: pagingShare,
11490
- selectedShare: selectedShare,
11491
- handleSortShare: handleSortShare,
11492
- handleChangeSearchTextShare: handleChangeSearchTextShare,
11493
- handleChangePageShare: handleChangePageShare,
11494
- numSelectedShare: selectedShare.length,
11495
- handleShareTextbook: handleShareTextbook,
11496
- isSelectedShare: isSelectedShare,
11497
- handleOpenShareDialog: handleOpenShareDialog,
11498
- handleCloseShareDialog: handleCloseShareDialog,
11499
- openShareDialog: openShareDialog,
11500
- isCheckAllShare: isCheckAllShare,
11501
- handleClickCheckboxShare: handleClickCheckboxShare,
11502
- handleSelectAllClickShare: handleSelectAllClickShare,
11503
- notShared: notShared,
11504
- shared: shared,
11505
- selectedTeacher: selectedTeacher,
11506
- handleOpenUpdateShareDialog: handleOpenUpdateShareDialog,
11507
- isUpdate: isUpdate,
11508
- handleUpdateSharedTextbook: handleUpdateSharedTextbook,
11509
- handleDisableShare: handleDisableShare,
11510
- currentModel: currentModel
11511
- };
11512
- };
11513
-
11514
11092
  var TextbookList = function TextbookList(props) {
11515
11093
  var _useTranslation = useTranslation(),
11516
11094
  t = _useTranslation.t;
11517
- var isAdmin = useSelector(function (state) {
11518
- var _state$common, _state$common$user, _state$common$user$ro;
11519
- 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$ro = _state$common$user.roles) === null || _state$common$user$ro === void 0 ? void 0 : _state$common$user$ro.includes(Role.Admin);
11520
- });
11521
11095
  var _useTextbookList = useTextbookList(props),
11522
11096
  filter = _useTextbookList.filter,
11523
11097
  textbooks = _useTextbookList.textbooks,
11524
11098
  paging = _useTextbookList.paging,
11525
- getData = _useTextbookList.getData,
11526
11099
  textSearchRef = _useTextbookList.textSearchRef,
11100
+ selectedTextbook = _useTextbookList.selectedTextbook,
11527
11101
  handleChangeSearchText = _useTextbookList.handleChangeSearchText,
11528
11102
  handleSort = _useTextbookList.handleSort,
11529
- selectedTextbook = _useTextbookList.selectedTextbook,
11530
11103
  handleChangePage = _useTextbookList.handleChangePage,
11531
11104
  calcOrderNumber = _useTextbookList.calcOrderNumber,
11532
11105
  handleViewTextbook = _useTextbookList.handleViewTextbook,
@@ -11535,33 +11108,6 @@ var TextbookList = function TextbookList(props) {
11535
11108
  toggleConfirmDialog = _useTextbookList.toggleConfirmDialog,
11536
11109
  handleDeleteTextbook = _useTextbookList.handleDeleteTextbook,
11537
11110
  handleSelectDeleteTextbook = _useTextbookList.handleSelectDeleteTextbook;
11538
- var _useTextbookShare = useTextbookShare(_extends({}, props, {
11539
- getData: getData
11540
- })),
11541
- filterShare = _useTextbookShare.filterShare,
11542
- textSearchShareRef = _useTextbookShare.textSearchShareRef,
11543
- pagingShare = _useTextbookShare.pagingShare,
11544
- selectedShare = _useTextbookShare.selectedShare,
11545
- handleSortShare = _useTextbookShare.handleSortShare,
11546
- handleChangeSearchTextShare = _useTextbookShare.handleChangeSearchTextShare,
11547
- handleChangePageShare = _useTextbookShare.handleChangePageShare,
11548
- numSelectedShare = _useTextbookShare.numSelectedShare,
11549
- handleShareTextbook = _useTextbookShare.handleShareTextbook,
11550
- isSelectedShare = _useTextbookShare.isSelectedShare,
11551
- handleOpenShareDialog = _useTextbookShare.handleOpenShareDialog,
11552
- handleCloseShareDialog = _useTextbookShare.handleCloseShareDialog,
11553
- openShareDialog = _useTextbookShare.openShareDialog,
11554
- isCheckAllShare = _useTextbookShare.isCheckAllShare,
11555
- handleClickCheckboxShare = _useTextbookShare.handleClickCheckboxShare,
11556
- handleSelectAllClickShare = _useTextbookShare.handleSelectAllClickShare,
11557
- notShared = _useTextbookShare.notShared,
11558
- shared = _useTextbookShare.shared,
11559
- selectedTeacher = _useTextbookShare.selectedTeacher,
11560
- handleOpenUpdateShareDialog = _useTextbookShare.handleOpenUpdateShareDialog,
11561
- isUpdate = _useTextbookShare.isUpdate,
11562
- handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
11563
- handleDisableShare = _useTextbookShare.handleDisableShare,
11564
- currentModel = _useTextbookShare.currentModel;
11565
11111
  return React__default.createElement(LayoutList, {
11566
11112
  title: t(TEXTBOOK_PAGE_TITLE)
11567
11113
  }, React__default.createElement(Grid, {
@@ -11577,21 +11123,14 @@ var TextbookList = function TextbookList(props) {
11577
11123
  item: true,
11578
11124
  xs: 6
11579
11125
  }, React__default.createElement(Stack, {
11580
- alignItems: "end",
11581
- direction: "row",
11582
- sx: {
11583
- justifyContent: "flex-end"
11584
- },
11585
- spacing: 2
11126
+ alignItems: "end"
11586
11127
  }, React__default.createElement(Button, {
11587
11128
  startIcon: React__default.createElement(FaPlus, {
11588
11129
  size: 12
11589
11130
  }),
11590
11131
  variant: "contained",
11591
11132
  color: "primary",
11592
- onClick: handleCreateTextbook,
11593
- disabled: isAdmin,
11594
- className: (!isAdmin ? "bg-success" : "bg-secondary") + " text-white"
11133
+ onClick: handleCreateTextbook
11595
11134
  }, t("create_textbook")))), React__default.createElement(Grid, {
11596
11135
  item: true,
11597
11136
  xs: 12,
@@ -11603,11 +11142,7 @@ var TextbookList = function TextbookList(props) {
11603
11142
  }), React__default.createElement(TableBody, null, textbooks.map(function (i, index) {
11604
11143
  return React__default.createElement(TableRow, {
11605
11144
  key: i.id
11606
- }, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, i.name), React__default.createElement(TableCell, null, i.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(TableCell, null, i.totalChapters), React__default.createElement(TableCell, null, i.sharedUsers.map(function (email, index) {
11607
- return index > 2 ? null : index === 2 ? React__default.createElement("div", null, "(+", i.sharedUsers.length - 2, ")") : React__default.createElement("div", {
11608
- key: index
11609
- }, email.toLowerCase());
11610
- })), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
11145
+ }, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, i.name), React__default.createElement(TableCell, null, i.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_format"))), React__default.createElement(TableCell, null, i.totalChapters), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
11611
11146
  direction: "row",
11612
11147
  spacing: 1,
11613
11148
  alignItems: "center"
@@ -11628,25 +11163,9 @@ var TextbookList = function TextbookList(props) {
11628
11163
  }
11629
11164
  }, React__default.createElement(FaEye, {
11630
11165
  size: 12
11631
- })), React__default.createElement(IconButton, {
11632
- disabled: handleDisableShare(i) || isAdmin,
11633
- className: (handleDisableShare(i) || isAdmin ? "bg-secondary" : "bg-info") + " text-white me-1",
11634
- onClick: function onClick() {
11635
- return handleOpenShareDialog(i);
11636
- }
11637
- }, React__default.createElement(FaShare, {
11638
- size: 12
11639
- })), React__default.createElement(IconButton, {
11640
- disabled: handleDisableShare(i) || isAdmin,
11641
- className: (handleDisableShare(i) || isAdmin ? "bg-secondary" : "bg-success") + " text-white me-1",
11642
- onClick: function onClick() {
11643
- return handleOpenUpdateShareDialog(i);
11644
- }
11645
- }, React__default.createElement(FaExchangeAlt, {
11646
- size: 12
11647
11166
  })), React__default.createElement(IconButton, {
11648
11167
  color: "default",
11649
- className: (i.isCreatedByAdmin ? "bg-secondary" : "bg-danger") + " text-white mr-1",
11168
+ className: (i.isCreatedByAdmin ? "bg-secondary" : "bg-danger") + " text-white",
11650
11169
  onClick: function onClick() {
11651
11170
  return handleSelectDeleteTextbook(i);
11652
11171
  },
@@ -11667,26 +11186,6 @@ var TextbookList = function TextbookList(props) {
11667
11186
  onConfirm: handleDeleteTextbook,
11668
11187
  confirmText: selectedTextbook === null || selectedTextbook === void 0 ? void 0 : selectedTextbook.name,
11669
11188
  isDelete: true
11670
- }), !!currentModel && React__default.createElement(ShareToTeacherDialog, {
11671
- open: openShareDialog,
11672
- selectedShare: selectedShare,
11673
- textSearchShareRef: textSearchShareRef,
11674
- handleChangeSearchTextShare: handleChangeSearchTextShare,
11675
- numSelectedShare: numSelectedShare,
11676
- isCheckAllShare: isCheckAllShare,
11677
- handleSelectAllClickShare: handleSelectAllClickShare,
11678
- teachers: !isUpdate ? notShared : shared,
11679
- filterShare: filterShare,
11680
- pagingShare: pagingShare,
11681
- handleSortShare: handleSortShare,
11682
- handleChangePageShare: handleChangePageShare,
11683
- handleShareModel: !isUpdate ? handleShareTextbook : handleUpdateSharedTextbook,
11684
- isSelectedShare: isSelectedShare,
11685
- handleCloseShareDialog: handleCloseShareDialog,
11686
- handleClickCheckboxShare: handleClickCheckboxShare,
11687
- selectedTeacher: selectedTeacher,
11688
- dataId: currentModel.id,
11689
- isUpdate: isUpdate
11690
11189
  }));
11691
11190
  };
11692
11191
 
@@ -16948,7 +16447,6 @@ var singleLogo = function singleLogo(_ref) {
16948
16447
  };
16949
16448
 
16950
16449
  var Header = function Header(_ref) {
16951
- var _user$roles;
16952
16450
  var academyListRoute = _ref.academyListRoute,
16953
16451
  homeRoute = _ref.homeRoute,
16954
16452
  registerRoute = _ref.registerRoute,
@@ -16960,27 +16458,24 @@ var Header = function Header(_ref) {
16960
16458
  t = _useTranslation.t;
16961
16459
  var location = useLocation();
16962
16460
  var theme = useTheme();
16963
- var user = useSelector(function (state) {
16964
- var _state$common;
16965
- return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
16966
- });
16461
+ var param = window.location.pathname;
16967
16462
  var language = useSelector(function (state) {
16968
- var _state$common2;
16969
- return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
16463
+ var _state$common;
16464
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
16970
16465
  });
16971
- var isTeacher = user === null || user === void 0 ? void 0 : (_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes(Role.Teacher);
16466
+ var isTeacherSide = param.includes('teacher');
16972
16467
  var isLargerThanXL = useMediaQuery(theme.breakpoints.up("xl"));
16973
16468
  var academyDomain = useSelector(function (state) {
16974
- var _state$common3, _state$common3$user;
16975
- return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : (_state$common3$user = _state$common3.user) === null || _state$common3$user === void 0 ? void 0 : _state$common3$user.academyDomain;
16469
+ var _state$common2, _state$common2$user;
16470
+ 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.academyDomain;
16976
16471
  });
16977
16472
  var logo = useMemo(function () {
16978
- if (isTeacher) {
16473
+ if (isTeacherSide) {
16979
16474
  return language === Language.en ? React__default.createElement(teacherFullLogoEn, null) : React__default.createElement(teacherFullLogoKo, null);
16980
16475
  } else {
16981
16476
  return language === Language.en ? React__default.createElement(studentFullLogoEn, null) : React__default.createElement(studentFullLogoKo, null);
16982
16477
  }
16983
- }, [isTeacher, language]);
16478
+ }, [isTeacherSide, language]);
16984
16479
  var pathname = location.pathname.toLowerCase();
16985
16480
  return React__default.createElement(Stack, {
16986
16481
  width: "100%",
@@ -18171,11 +17666,11 @@ var DayOfWeek;
18171
17666
  DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday";
18172
17667
  DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday";
18173
17668
  })(DayOfWeek || (DayOfWeek = {}));
18174
- var TeacherSortBy$1;
17669
+ var TeacherSortBy;
18175
17670
  (function (TeacherSortBy) {
18176
17671
  TeacherSortBy["Name"] = "UserProfile.FullName";
18177
17672
  TeacherSortBy["Email"] = "UserProfile.Email";
18178
- })(TeacherSortBy$1 || (TeacherSortBy$1 = {}));
17673
+ })(TeacherSortBy || (TeacherSortBy = {}));
18179
17674
  var ClassStatus;
18180
17675
  (function (ClassStatus) {
18181
17676
  ClassStatus["Default"] = "Default";
@@ -18279,7 +17774,7 @@ var DefaultTeacherFilter = {
18279
17774
  currentPage: 1,
18280
17775
  pageSize: 50,
18281
17776
  sortColumnDirection: OrderBy$2.DESC,
18282
- sortColumnName: TeacherSortBy$1.Name,
17777
+ sortColumnName: TeacherSortBy.Name,
18283
17778
  textSearch: ""
18284
17779
  };
18285
17780
  var DEFAULT_CLASS_REQUEST = {
@@ -19165,7 +18660,7 @@ var StudentList = function StudentList(_ref) {
19165
18660
  selectedStudent = _ref.selectedStudent,
19166
18661
  t = _ref.t,
19167
18662
  textSearchRef = _ref.textSearchRef,
19168
- isOneRoleExists = _ref.isOneRoleExists,
18663
+ disabled = _ref.disabled,
19169
18664
  handleOpenDeleteClassDialog = _ref.handleOpenDeleteClassDialog,
19170
18665
  handleCloseConfirmDialog = _ref.handleCloseConfirmDialog,
19171
18666
  handleSort = _ref.handleSort,
@@ -19225,7 +18720,7 @@ var StudentList = function StudentList(_ref) {
19225
18720
  },
19226
18721
  placeholder: t("search_for"),
19227
18722
  onChange: handleChangeSearchText
19228
- }))), isOneRoleExists && React__default.createElement(Grid, {
18723
+ }))), !disabled && React__default.createElement(Grid, {
19229
18724
  item: true,
19230
18725
  xs: 6,
19231
18726
  className: "d-flex align-items-center"
@@ -19261,11 +18756,11 @@ var StudentList = function StudentList(_ref) {
19261
18756
  className: "d-flex"
19262
18757
  }, React__default.createElement(IconButton, {
19263
18758
  color: "default",
19264
- className: (!isOneRoleExists ? "bg-secondary" : "bg-danger") + " text-white",
18759
+ className: (disabled ? "bg-secondary" : "bg-danger") + " text-white",
19265
18760
  onClick: function onClick() {
19266
18761
  return handleOpenDeleteClassDialog(i);
19267
18762
  },
19268
- disabled: !isOneRoleExists
18763
+ disabled: disabled
19269
18764
  }, React__default.createElement(FaTrashCan, {
19270
18765
  size: 12
19271
18766
  })))));
@@ -19927,9 +19422,9 @@ var useLessonClassList = function useLessonClassList(courseId) {
19927
19422
  };
19928
19423
  };
19929
19424
 
19930
- var TEACHER_URL$1 = BASE_URL + "/api/teacher";
19931
- var getTeacherListApi$1 = function getTeacherListApi(query) {
19932
- return api.get("" + TEACHER_URL$1, {
19425
+ var TEACHER_URL = BASE_URL + "/api/teacher";
19426
+ var getTeacherListApi = function getTeacherListApi(query) {
19427
+ return api.get("" + TEACHER_URL, {
19933
19428
  params: query
19934
19429
  });
19935
19430
  };
@@ -19950,7 +19445,7 @@ var useTeacherList = function useTeacherList() {
19950
19445
  var getListTeacher = function getListTeacher() {
19951
19446
  try {
19952
19447
  var _temp = _catch(function () {
19953
- return Promise.resolve(getTeacherListApi$1(teacherFilter)).then(function (res) {
19448
+ return Promise.resolve(getTeacherListApi(teacherFilter)).then(function (res) {
19954
19449
  var _res$data;
19955
19450
  setTeachers(((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.items) || []);
19956
19451
  });
@@ -19990,6 +19485,7 @@ var useClassDetail = function useClassDetail(_ref) {
19990
19485
  var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
19991
19486
  var isOneRoleExists = roles.length === 1;
19992
19487
  var isAdmin = roles.includes(Role.Admin) && role === Role.Admin;
19488
+ var isTeacher = roles.includes(Role.Teacher) && !roles.includes(Role.Admin) && role === Role.Teacher;
19993
19489
  var _useState = useState(),
19994
19490
  course = _useState[0],
19995
19491
  setCourse = _useState[1];
@@ -20412,6 +19908,7 @@ var useClassDetail = function useClassDetail(_ref) {
20412
19908
  isAdmin: isAdmin,
20413
19909
  paging: paging,
20414
19910
  filter: filter,
19911
+ isTeacher: isTeacher,
20415
19912
  listUserSelected: selected,
20416
19913
  isSelected: isSelected,
20417
19914
  textSearchRef: textSearchRef,
@@ -20794,6 +20291,7 @@ var ClassDetail = function ClassDetail(_ref) {
20794
20291
  schema = _useClassDetail.schema,
20795
20292
  paging = _useClassDetail.paging,
20796
20293
  isAdmin = _useClassDetail.isAdmin,
20294
+ isTeacher = _useClassDetail.isTeacher,
20797
20295
  filter = _useClassDetail.filter,
20798
20296
  listUserSelected = _useClassDetail.listUserSelected,
20799
20297
  userList = _useClassDetail.userList,
@@ -20810,7 +20308,6 @@ var ClassDetail = function ClassDetail(_ref) {
20810
20308
  course = _useClassDetail.course,
20811
20309
  classRequest = _useClassDetail.classRequest,
20812
20310
  teacherOptions = _useClassDetail.teacherOptions,
20813
- isOneRoleExists = _useClassDetail.isOneRoleExists,
20814
20311
  studentListProps = _useClassDetail.studentListProps,
20815
20312
  teacherListProps = _useClassDetail.teacherListProps,
20816
20313
  lessonListProps = _useClassDetail.lessonListProps,
@@ -20898,7 +20395,7 @@ var ClassDetail = function ClassDetail(_ref) {
20898
20395
  value: selected,
20899
20396
  index: TabList$2[1].value
20900
20397
  }, !!id && !Number.isNaN(+id) && selected === TabList$2[1].value && React__default.createElement(StudentList, Object.assign({
20901
- isOneRoleExists: isOneRoleExists,
20398
+ disabled: !isTeacher && !isAdmin,
20902
20399
  onAdd: handleOpenSelectDialog
20903
20400
  }, studentListProps))), React__default.createElement(CustomTabPanel, {
20904
20401
  value: selected,
@@ -23157,5 +22654,5 @@ var ReleaseAlert = function ReleaseAlert() {
23157
22654
  }
23158
22655
  };
23159
22656
 
23160
- export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, ClassDetail, ClassList, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, LoadingComponent, Login, LoginWithEmail, SignIn as LoginWithPassword, NotFound, NotificationDetail, NotificationList, PUSHER_CONFIG, PassCodeCheck, PrintExamResultView, PrintExamView2, QuestionCountSelector, RecentUserAction, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, ShareToTeacherDialog, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, UserList, api, apiUpload, canAccess as canAccessRoute, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatRole, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, getRole, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useList, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useTextbookShare, useVirtualizeList, utcToLocalTime };
22657
+ export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AnswerCountSelector, ArticleCategorySelector, ArticleGroupView, BASE_URL, ChatContainer, ChatItemType, types as ChatTypes, ClassDetail, ClassList, CommonDialog, ConfirmDialog, index$1 as CoreHooks, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, index as Enums, ExamDetailView, ExamEvent, ExamResultV2, Header, InputText, LANGUAGES, Language, LayoutContext, Loading, LoadingComponent, Login, LoginWithEmail, SignIn as LoginWithPassword, NotFound, NotificationDetail, NotificationList, PUSHER_CONFIG, PassCodeCheck, PrintExamResultView, PrintExamView2, QuestionCountSelector, RecentUserAction, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, ScoreSelector, SubjectSelector, index$2 as Textbook, TextbookViewDetail as TextbookDetail, TextbookList, TheAcademyDropdown, TheLanguageDropdown, index$3 as Types, UserList, api, apiUpload, canAccess as canAccessRoute, checkSuperUrl, createRecentUserActionListApi, diffFromNow, formatRole, formatTime, getAcademyDomain, getAccessToken, getErrorMessage, getOrdinalSuffix, getRecentUserActionListApi, getRole, i18n, minutesToTimeSpan, setAlert, setLanguage, setLoading, setReFetchUserAcademies, setReadyRegisterPusher, setUser, store, times as timeUtils, toISOString, useAutoAcademyDomain, useCategorySelect, useChatContainer, useCountDownTimer, useGoogleSignOut, useLanguage, useLoadMore, useLogin, usePusherConversation, useSubjectSelect, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
23161
22658
  //# sourceMappingURL=index.modern.js.map