touchstudy-core 0.1.96 → 0.1.98

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.
@@ -7441,8 +7441,10 @@ var useMessageList = function useMessageList(_ref) {
7441
7441
  var _state$common, _state$common$user;
7442
7442
  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
7443
  });
7444
- var isTeacher = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Teacher);
7445
- var isFirst = true;
7444
+ var isAdmin = roles === null || roles === void 0 ? void 0 : roles.includes(Role.Admin);
7445
+ var isTeacher = (roles === null || roles === void 0 ? void 0 : roles.includes(Role.Teacher)) && !isAdmin;
7446
+ var isStudent = !isTeacher && !isAdmin;
7447
+ var firstRef = useRef(true);
7446
7448
  var getMessageList = function getMessageList(conversationId) {
7447
7449
  try {
7448
7450
  var _temp3 = function _temp3() {
@@ -7462,14 +7464,14 @@ var useMessageList = function useMessageList(_ref) {
7462
7464
  });
7463
7465
  });
7464
7466
  var _temp = function () {
7465
- if (isFirst && isTeacher) {
7467
+ if (firstRef.current && !isStudent) {
7466
7468
  return Promise.resolve(createRecentUserActionListApi({
7467
7469
  userId: (student === null || student === void 0 ? void 0 : student.id) || 0,
7468
7470
  action: RecentUserAction$1.ViewedQNA,
7469
7471
  data: "" + conversationId,
7470
- isAdmin: !isTeacher
7472
+ isAdmin: false
7471
7473
  })).then(function () {
7472
- isFirst = false;
7474
+ firstRef.current = false;
7473
7475
  });
7474
7476
  }
7475
7477
  }();
@@ -9744,7 +9746,8 @@ var ActionButtons = function ActionButtons(_ref) {
9744
9746
  hideSave = _ref$hideSave === void 0 ? false : _ref$hideSave,
9745
9747
  onBack = _ref.onBack,
9746
9748
  onSave = _ref.onSave,
9747
- onAltSave = _ref.onAltSave;
9749
+ onAltSave = _ref.onAltSave,
9750
+ isReadonly = _ref.isReadonly;
9748
9751
  return React__default.createElement(Stack, {
9749
9752
  direction: "row",
9750
9753
  spacing: 1,
@@ -9763,7 +9766,7 @@ var ActionButtons = function ActionButtons(_ref) {
9763
9766
  size: 16
9764
9767
  }),
9765
9768
  onClick: onSave,
9766
- disabled: saveDisabled
9769
+ disabled: saveDisabled || isReadonly
9767
9770
  }, saveText), !!altSaveText && onAltSave && React__default.createElement(Button, {
9768
9771
  variant: "contained",
9769
9772
  color: "primary",
@@ -9791,6 +9794,7 @@ var TextbookActionButtons = function TextbookActionButtons(_ref) {
9791
9794
  size: 14
9792
9795
  }) : undefined,
9793
9796
  saveText: t(!(textbook !== null && textbook !== void 0 && textbook.id) ? "create_and_continue" : isReadonly ? "update" : "update_textbook_title"),
9797
+ isReadonly: isReadonly,
9794
9798
  hideSave: hideSave,
9795
9799
  onSave: onSave
9796
9800
  });
@@ -10706,7 +10710,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
10706
10710
  textbook: textbook,
10707
10711
  onBack: handleGoToTextbookList,
10708
10712
  onSave: handleCreateOrUpdateTextbook,
10709
- hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin
10713
+ hideSave: !isEditedTitle && !!id && !isReadonly || textbook.isCreatedByAdmin || !!id && isReadonly
10710
10714
  }))), React__default.createElement(Grid, {
10711
10715
  item: true,
10712
10716
  xs: 12,
@@ -10717,7 +10721,7 @@ var TextbookViewDetail = function TextbookViewDetail(props) {
10717
10721
  onClick: function onClick() {
10718
10722
  return handleOpenCreateExamDialog();
10719
10723
  },
10720
- disabled: isReadonly || !articlesSelected.length,
10724
+ disabled: !articlesSelected.length,
10721
10725
  startIcon: React__default.createElement(FaPlus, {
10722
10726
  size: 12
10723
10727
  })
@@ -11298,7 +11302,9 @@ var getTeacherListApi = function getTeacherListApi(query) {
11298
11302
  };
11299
11303
 
11300
11304
  var useTextbookShare = function useTextbookShare(props) {
11301
- var getData = props.getData;
11305
+ var _infoUser$roles;
11306
+ var getData = props.getData,
11307
+ role = props.role;
11302
11308
  var _useList = useList(function (search) {
11303
11309
  return getTeacherListApi(search);
11304
11310
  }, DefaultTeacherQuery),
@@ -11338,6 +11344,8 @@ var useTextbookShare = function useTextbookShare(props) {
11338
11344
  var _state$common;
11339
11345
  return (state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user) || {};
11340
11346
  });
11347
+ var isAdmin = infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$roles = infoUser.roles) === null || _infoUser$roles === void 0 ? void 0 : _infoUser$roles.includes(Role.Admin);
11348
+ var isAdminSite = role === Role.Admin;
11341
11349
  useEffect(function () {
11342
11350
  if (!isUpdate) {
11343
11351
  filterTeacherNotShared(currentModel);
@@ -11424,12 +11432,8 @@ var useTextbookShare = function useTextbookShare(props) {
11424
11432
  });
11425
11433
  setShared(existsTeachers);
11426
11434
  };
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 || "");
11435
+ var handleDisable = function handleDisable(textbook) {
11436
+ return isAdmin && !isAdminSite || !isAdmin && (!textbook.isShared || textbook.createdBy.id != infoUser.id);
11433
11437
  };
11434
11438
  var handleShareTextbook = function handleShareTextbook(teacherIds, textbookId) {
11435
11439
  try {
@@ -11506,18 +11510,16 @@ var useTextbookShare = function useTextbookShare(props) {
11506
11510
  handleOpenUpdateShareDialog: handleOpenUpdateShareDialog,
11507
11511
  isUpdate: isUpdate,
11508
11512
  handleUpdateSharedTextbook: handleUpdateSharedTextbook,
11509
- handleDisableShare: handleDisableShare,
11510
- currentModel: currentModel
11513
+ currentModel: currentModel,
11514
+ handleDisable: handleDisable,
11515
+ isAdmin: isAdmin,
11516
+ isAdminSite: isAdminSite
11511
11517
  };
11512
11518
  };
11513
11519
 
11514
11520
  var TextbookList = function TextbookList(props) {
11515
11521
  var _useTranslation = useTranslation(),
11516
11522
  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
11523
  var _useTextbookList = useTextbookList(props),
11522
11524
  filter = _useTextbookList.filter,
11523
11525
  textbooks = _useTextbookList.textbooks,
@@ -11560,8 +11562,10 @@ var TextbookList = function TextbookList(props) {
11560
11562
  handleOpenUpdateShareDialog = _useTextbookShare.handleOpenUpdateShareDialog,
11561
11563
  isUpdate = _useTextbookShare.isUpdate,
11562
11564
  handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
11563
- handleDisableShare = _useTextbookShare.handleDisableShare,
11564
- currentModel = _useTextbookShare.currentModel;
11565
+ currentModel = _useTextbookShare.currentModel,
11566
+ handleDisable = _useTextbookShare.handleDisable,
11567
+ isAdmin = _useTextbookShare.isAdmin,
11568
+ isAdminSite = _useTextbookShare.isAdminSite;
11565
11569
  return React__default.createElement(LayoutList, {
11566
11570
  title: t(TEXTBOOK_PAGE_TITLE)
11567
11571
  }, React__default.createElement(Grid, {
@@ -11583,15 +11587,14 @@ var TextbookList = function TextbookList(props) {
11583
11587
  justifyContent: "flex-end"
11584
11588
  },
11585
11589
  spacing: 2
11586
- }, React__default.createElement(Button, {
11590
+ }, (!isAdmin || isAdminSite) && React__default.createElement(Button, {
11587
11591
  startIcon: React__default.createElement(FaPlus, {
11588
11592
  size: 12
11589
11593
  }),
11590
11594
  variant: "contained",
11591
11595
  color: "primary",
11592
11596
  onClick: handleCreateTextbook,
11593
- disabled: isAdmin,
11594
- className: (!isAdmin ? "bg-success" : "bg-secondary") + " text-white"
11597
+ className: (isAdmin && !isAdminSite ? "bg-secondary" : "bg-success") + " text-white"
11595
11598
  }, t("create_textbook")))), React__default.createElement(Grid, {
11596
11599
  item: true,
11597
11600
  xs: 12,
@@ -11613,11 +11616,11 @@ var TextbookList = function TextbookList(props) {
11613
11616
  alignItems: "center"
11614
11617
  }, React__default.createElement(IconButton, {
11615
11618
  color: "default",
11616
- className: (i.isCreatedByAdmin ? "bg-secondary" : "bg-warning") + " text-white",
11619
+ className: (handleDisable(i) ? "bg-secondary" : "bg-warning") + " text-white",
11617
11620
  onClick: function onClick() {
11618
11621
  return handleUpdateTextbook(i.id);
11619
11622
  },
11620
- disabled: !!i.isCreatedByAdmin
11623
+ disabled: handleDisable(i)
11621
11624
  }, React__default.createElement(FaPencil, {
11622
11625
  size: 12
11623
11626
  })), React__default.createElement(IconButton, {
@@ -11629,16 +11632,16 @@ var TextbookList = function TextbookList(props) {
11629
11632
  }, React__default.createElement(FaEye, {
11630
11633
  size: 12
11631
11634
  })), React__default.createElement(IconButton, {
11632
- disabled: handleDisableShare(i) || isAdmin,
11633
- className: (handleDisableShare(i) || isAdmin ? "bg-secondary" : "bg-info") + " text-white me-1",
11635
+ disabled: handleDisable(i) || isAdmin,
11636
+ className: (handleDisable(i) || isAdmin ? "bg-secondary" : "bg-info") + " text-white me-1",
11634
11637
  onClick: function onClick() {
11635
11638
  return handleOpenShareDialog(i);
11636
11639
  }
11637
11640
  }, React__default.createElement(FaShare, {
11638
11641
  size: 12
11639
11642
  })), React__default.createElement(IconButton, {
11640
- disabled: handleDisableShare(i) || isAdmin,
11641
- className: (handleDisableShare(i) || isAdmin ? "bg-secondary" : "bg-success") + " text-white me-1",
11643
+ disabled: handleDisable(i) || isAdmin,
11644
+ className: (handleDisable(i) || isAdmin ? "bg-secondary" : "bg-success") + " text-white me-1",
11642
11645
  onClick: function onClick() {
11643
11646
  return handleOpenUpdateShareDialog(i);
11644
11647
  }
@@ -11646,11 +11649,11 @@ var TextbookList = function TextbookList(props) {
11646
11649
  size: 12
11647
11650
  })), React__default.createElement(IconButton, {
11648
11651
  color: "default",
11649
- className: (i.isCreatedByAdmin ? "bg-secondary" : "bg-danger") + " text-white mr-1",
11652
+ className: (handleDisable(i) ? "bg-secondary" : "bg-danger") + " text-white mr-1",
11650
11653
  onClick: function onClick() {
11651
11654
  return handleSelectDeleteTextbook(i);
11652
11655
  },
11653
- disabled: !!i.isCreatedByAdmin
11656
+ disabled: handleDisable(i)
11654
11657
  }, React__default.createElement(FaTrash, {
11655
11658
  size: 12
11656
11659
  })))));
@@ -16948,7 +16951,6 @@ var singleLogo = function singleLogo(_ref) {
16948
16951
  };
16949
16952
 
16950
16953
  var Header = function Header(_ref) {
16951
- var _user$roles;
16952
16954
  var academyListRoute = _ref.academyListRoute,
16953
16955
  homeRoute = _ref.homeRoute,
16954
16956
  registerRoute = _ref.registerRoute,
@@ -16960,27 +16962,24 @@ var Header = function Header(_ref) {
16960
16962
  t = _useTranslation.t;
16961
16963
  var location = useLocation();
16962
16964
  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
- });
16965
+ var param = window.location.pathname;
16967
16966
  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;
16967
+ var _state$common;
16968
+ return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
16970
16969
  });
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);
16970
+ var isTeacherSide = param.includes('teacher');
16972
16971
  var isLargerThanXL = useMediaQuery(theme.breakpoints.up("xl"));
16973
16972
  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;
16973
+ var _state$common2, _state$common2$user;
16974
+ 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
16975
  });
16977
16976
  var logo = useMemo(function () {
16978
- if (isTeacher) {
16977
+ if (isTeacherSide) {
16979
16978
  return language === Language.en ? React__default.createElement(teacherFullLogoEn, null) : React__default.createElement(teacherFullLogoKo, null);
16980
16979
  } else {
16981
16980
  return language === Language.en ? React__default.createElement(studentFullLogoEn, null) : React__default.createElement(studentFullLogoKo, null);
16982
16981
  }
16983
- }, [isTeacher, language]);
16982
+ }, [isTeacherSide, language]);
16984
16983
  var pathname = location.pathname.toLowerCase();
16985
16984
  return React__default.createElement(Stack, {
16986
16985
  width: "100%",
@@ -19165,7 +19164,7 @@ var StudentList = function StudentList(_ref) {
19165
19164
  selectedStudent = _ref.selectedStudent,
19166
19165
  t = _ref.t,
19167
19166
  textSearchRef = _ref.textSearchRef,
19168
- isOneRoleExists = _ref.isOneRoleExists,
19167
+ disabled = _ref.disabled,
19169
19168
  handleOpenDeleteClassDialog = _ref.handleOpenDeleteClassDialog,
19170
19169
  handleCloseConfirmDialog = _ref.handleCloseConfirmDialog,
19171
19170
  handleSort = _ref.handleSort,
@@ -19225,7 +19224,7 @@ var StudentList = function StudentList(_ref) {
19225
19224
  },
19226
19225
  placeholder: t("search_for"),
19227
19226
  onChange: handleChangeSearchText
19228
- }))), isOneRoleExists && React__default.createElement(Grid, {
19227
+ }))), !disabled && React__default.createElement(Grid, {
19229
19228
  item: true,
19230
19229
  xs: 6,
19231
19230
  className: "d-flex align-items-center"
@@ -19261,11 +19260,11 @@ var StudentList = function StudentList(_ref) {
19261
19260
  className: "d-flex"
19262
19261
  }, React__default.createElement(IconButton, {
19263
19262
  color: "default",
19264
- className: (!isOneRoleExists ? "bg-secondary" : "bg-danger") + " text-white",
19263
+ className: (disabled ? "bg-secondary" : "bg-danger") + " text-white",
19265
19264
  onClick: function onClick() {
19266
19265
  return handleOpenDeleteClassDialog(i);
19267
19266
  },
19268
- disabled: !isOneRoleExists
19267
+ disabled: disabled
19269
19268
  }, React__default.createElement(FaTrashCan, {
19270
19269
  size: 12
19271
19270
  })))));
@@ -19990,6 +19989,7 @@ var useClassDetail = function useClassDetail(_ref) {
19990
19989
  var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
19991
19990
  var isOneRoleExists = roles.length === 1;
19992
19991
  var isAdmin = roles.includes(Role.Admin) && role === Role.Admin;
19992
+ var isTeacher = roles.includes(Role.Teacher) && !roles.includes(Role.Admin) && role === Role.Teacher;
19993
19993
  var _useState = useState(),
19994
19994
  course = _useState[0],
19995
19995
  setCourse = _useState[1];
@@ -20412,6 +20412,7 @@ var useClassDetail = function useClassDetail(_ref) {
20412
20412
  isAdmin: isAdmin,
20413
20413
  paging: paging,
20414
20414
  filter: filter,
20415
+ isTeacher: isTeacher,
20415
20416
  listUserSelected: selected,
20416
20417
  isSelected: isSelected,
20417
20418
  textSearchRef: textSearchRef,
@@ -20794,6 +20795,7 @@ var ClassDetail = function ClassDetail(_ref) {
20794
20795
  schema = _useClassDetail.schema,
20795
20796
  paging = _useClassDetail.paging,
20796
20797
  isAdmin = _useClassDetail.isAdmin,
20798
+ isTeacher = _useClassDetail.isTeacher,
20797
20799
  filter = _useClassDetail.filter,
20798
20800
  listUserSelected = _useClassDetail.listUserSelected,
20799
20801
  userList = _useClassDetail.userList,
@@ -20810,7 +20812,6 @@ var ClassDetail = function ClassDetail(_ref) {
20810
20812
  course = _useClassDetail.course,
20811
20813
  classRequest = _useClassDetail.classRequest,
20812
20814
  teacherOptions = _useClassDetail.teacherOptions,
20813
- isOneRoleExists = _useClassDetail.isOneRoleExists,
20814
20815
  studentListProps = _useClassDetail.studentListProps,
20815
20816
  teacherListProps = _useClassDetail.teacherListProps,
20816
20817
  lessonListProps = _useClassDetail.lessonListProps,
@@ -20898,7 +20899,7 @@ var ClassDetail = function ClassDetail(_ref) {
20898
20899
  value: selected,
20899
20900
  index: TabList$2[1].value
20900
20901
  }, !!id && !Number.isNaN(+id) && selected === TabList$2[1].value && React__default.createElement(StudentList, Object.assign({
20901
- isOneRoleExists: isOneRoleExists,
20902
+ disabled: !isTeacher && !isAdmin,
20902
20903
  onAdd: handleOpenSelectDialog
20903
20904
  }, studentListProps))), React__default.createElement(CustomTabPanel, {
20904
20905
  value: selected,