touchstudy-core 0.1.158 → 0.1.160

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.
@@ -391,7 +391,7 @@ var do_you_want_to_complete_the_exam = "시험을 완료처리 하시겠습니
391
391
  var do_you_want_to_cancel_the_exam = "시험을 취소하시겠습니까? (학생의 결과는 모두 삭제됩니다)";
392
392
  var are_you_sure_you_want_to_delete_the_exam = "시험을 삭제하시겠습니까?";
393
393
  var are_you_sure_you_want_to_cancel_the_exam = "시험을 취소하시겠습니까?";
394
- var are_you_sure_you_want_to_delete_the_textbook = "교과서를 삭제하시겠습니까?";
394
+ var are_you_sure_you_want_to_delete_the_textbook = "교과서를 삭제하시겠습니까? (모든 학생 교과서 결과가 삭제됩니다)";
395
395
  var are_you_sure_you_want_to_delete_the_user = "사용자 {{user}}을(를) 삭제하시겠습니까?";
396
396
  var are_you_sure_you_want_to_delete_the_article = "정말로 기사를 삭제하시겠습니까: {{article}}?";
397
397
  var yes = "예";
@@ -2653,7 +2653,7 @@ var do_you_want_to_complete_the_exam$1 = "Do you want to complete the exam?";
2653
2653
  var do_you_want_to_cancel_the_exam$1 = "Do you want to cancel the exam? (All student results will be deleted)";
2654
2654
  var are_you_sure_you_want_to_delete_the_exam$1 = "Are you sure you want to delete the exam?";
2655
2655
  var are_you_sure_you_want_to_cancel_the_exam$1 = "Are you sure you want to cancel the exam?";
2656
- var are_you_sure_you_want_to_delete_the_textbook$1 = "Are you sure you want to delete the textbook?";
2656
+ var are_you_sure_you_want_to_delete_the_textbook$1 = "Are you sure you want to delete the textbook? (All student textbook results will be deleted)";
2657
2657
  var are_you_sure_you_want_to_delete_the_user$1 = "Are you sure you want to delete the user: {{user}}?";
2658
2658
  var are_you_sure_you_want_to_delete_the_article$1 = "Are you sure you want to delete the article: {{article}}?";
2659
2659
  var yes$1 = "Yes";
@@ -30135,9 +30135,12 @@ var _ChapterBox = function ChapterBox(_ref) {
30135
30135
 
30136
30136
  var TEXTBOOK_URL$1 = BASE_URL + "/api/textbooks";
30137
30137
  var SUPER_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook/personal-textbooks";
30138
- var getTextbookListApi$2 = function getTextbookListApi(query, isSuperAdmin) {
30139
- return api.get("" + (isSuperAdmin ? SUPER_TEXTBOOK_URL : TEXTBOOK_URL$1), {
30140
- params: query
30138
+ var SUPER_ADMIN_PREPARED_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook/prepared-textbooks";
30139
+ var getTextbookListApi$2 = function getTextbookListApi(query, isSuperAdmin, isPersonal) {
30140
+ return api.get("" + (isSuperAdmin ? isPersonal ? SUPER_TEXTBOOK_URL : SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$1), {
30141
+ params: _extends({}, query, {
30142
+ isPrepared: true
30143
+ })
30141
30144
  });
30142
30145
  };
30143
30146
  var getTextbookByIdApi$1 = function getTextbookByIdApi(textbookId, isSuperAdmin) {
@@ -30149,8 +30152,8 @@ var createTextbookApi = function createTextbookApi(data) {
30149
30152
  var updateTextbookApi = function updateTextbookApi(textbookId, data) {
30150
30153
  return api.put(TEXTBOOK_URL$1 + "/" + textbookId, data);
30151
30154
  };
30152
- var deleteTextbookApi$1 = function deleteTextbookApi(textbookId) {
30153
- return api["delete"](TEXTBOOK_URL$1 + "/" + textbookId);
30155
+ var deleteTextbookApi$1 = function deleteTextbookApi(textbookId, onAcademy) {
30156
+ return api["delete"]((onAcademy ? TEXTBOOK_URL$1 : SUPER_ADMIN_PREPARED_TEXTBOOK_URL) + "/" + textbookId);
30154
30157
  };
30155
30158
  var shareTextbookApi = function shareTextbookApi(textbookId, data) {
30156
30159
  return api.post(TEXTBOOK_URL$1 + "/" + textbookId + "/shared-textbook", data);
@@ -30191,24 +30194,44 @@ var DefaultTeacherQuery = {
30191
30194
  sortColumnDirection: OrderType.DESC,
30192
30195
  sortColumnName: TeacherSortBy$1.Name
30193
30196
  };
30194
- var TEXTBOOK_HEADERS = [{
30195
- title: "#"
30196
- }, {
30197
- title: "textbook_title",
30198
- sortKey: TextbookSortBy$1.Title
30199
- }, {
30200
- title: "textbook_subject",
30201
- sortKey: TextbookSortBy$1.SubjectName
30202
- }, {
30203
- title: "created_at",
30204
- sortKey: TextbookSortBy$1.CreatedAt
30205
- }, {
30206
- title: "total_chapters"
30207
- }, {
30208
- title: "authority"
30209
- }, {
30210
- title: ["edit_action", "view_action", "share_action", "update_shared_action", "delete_action"]
30211
- }];
30197
+ var TEXTBOOK_HEADERS = function TEXTBOOK_HEADERS(isAdmin, isAdminSite, onAcademy) {
30198
+ var headers = [{
30199
+ title: "#"
30200
+ }, {
30201
+ title: "image"
30202
+ }, {
30203
+ title: "textbook_title",
30204
+ sortKey: TextbookSortBy$1.Title
30205
+ }, {
30206
+ title: "textbook_subject",
30207
+ sortKey: TextbookSortBy$1.SubjectName
30208
+ }, {
30209
+ title: "created_at",
30210
+ sortKey: TextbookSortBy$1.CreatedAt
30211
+ }, {
30212
+ title: "total_chapters"
30213
+ }, {
30214
+ title: "total_uses"
30215
+ }];
30216
+ if (onAcademy && !isAdmin && !isAdminSite) {
30217
+ headers.push({
30218
+ title: "teacher_personal_textbook"
30219
+ });
30220
+ }
30221
+ if (onAcademy) {
30222
+ headers.push({
30223
+ title: "authority"
30224
+ });
30225
+ headers.push({
30226
+ title: ["edit_action", "view_action", "share_action", "update_shared_action", "delete_action"]
30227
+ });
30228
+ } else {
30229
+ headers.push({
30230
+ title: ["edit_action", "view_action", "delete_action"]
30231
+ });
30232
+ }
30233
+ return headers;
30234
+ };
30212
30235
  var TEACHER_ACADEMY_HEADERS = [{
30213
30236
  title: ""
30214
30237
  }, {
@@ -31662,9 +31685,10 @@ var useTextbookList = function useTextbookList(props) {
31662
31685
  var onNavigateCreate = props.onNavigateCreate,
31663
31686
  onNavigateDetail = props.onNavigateDetail,
31664
31687
  isSuperAdmin = props.isSuperAdmin,
31688
+ personal = props.personal,
31665
31689
  role = props.role;
31666
31690
  var _useList = useList(function (search) {
31667
- return getTextbookListApi$2(search, isSuperAdmin);
31691
+ return getTextbookListApi$2(search, isSuperAdmin, personal);
31668
31692
  }, TextbookDefaultQuery),
31669
31693
  filter = _useList.filter,
31670
31694
  textSearchRef = _useList.textSearchRef,
@@ -31684,6 +31708,7 @@ var useTextbookList = function useTextbookList(props) {
31684
31708
  var isTeacherSite = role === Role.Teacher;
31685
31709
  var isAdmin = !!user && ((_user$roles = user.roles) === null || _user$roles === void 0 ? void 0 : _user$roles.includes(Role.Admin));
31686
31710
  var isTeacher = !!user && ((_user$roles2 = user.roles) === null || _user$roles2 === void 0 ? void 0 : _user$roles2.includes(Role.Teacher)) && !isAdmin;
31711
+ var onAcademy = user && !!user.academyDomain;
31687
31712
  var _useTranslation = useTranslation(),
31688
31713
  t = _useTranslation.t;
31689
31714
  var dispatch = useDispatch();
@@ -31710,9 +31735,10 @@ var useTextbookList = function useTextbookList(props) {
31710
31735
  if (!(selectedTextbook !== null && selectedTextbook !== void 0 && selectedTextbook.id)) return Promise.resolve();
31711
31736
  dispatch(setLoading(true));
31712
31737
  var _temp = _catch(function () {
31713
- return Promise.resolve(deleteTextbookApi$1(selectedTextbook.id)).then(function () {
31738
+ return Promise.resolve(deleteTextbookApi$1(selectedTextbook.id, onAcademy)).then(function () {
31714
31739
  return Promise.resolve(getData(false)).then(function () {
31715
31740
  toggleConfirmDialog();
31741
+ toast.success(t("delete_data_successfully"));
31716
31742
  });
31717
31743
  });
31718
31744
  }, function (error) {
@@ -31968,6 +31994,7 @@ var useTextbookShare = function useTextbookShare(props) {
31968
31994
  });
31969
31995
  var isAdmin = infoUser && (infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$roles = infoUser.roles) === null || _infoUser$roles === void 0 ? void 0 : _infoUser$roles.includes(Role.Admin));
31970
31996
  var isAdminSite = role === Role.Admin;
31997
+ var onAcademy = infoUser && !!infoUser.academyDomain;
31971
31998
  useEffect(function () {
31972
31999
  if (!isUpdate) {
31973
32000
  filterTeacherNotShared(currentModel);
@@ -32135,12 +32162,13 @@ var useTextbookShare = function useTextbookShare(props) {
32135
32162
  handleUpdateSharedTextbook: handleUpdateSharedTextbook,
32136
32163
  currentModel: currentModel,
32137
32164
  isAdmin: isAdmin,
32138
- isAdminSite: isAdminSite
32165
+ isAdminSite: isAdminSite,
32166
+ onAcademy: onAcademy
32139
32167
  };
32140
32168
  };
32141
32169
 
32142
32170
  var TextbookRow = function TextbookRow(_ref) {
32143
- var _infoUser$roles, _infoUser$roles2, _data$createdBy, _data$textbookOwners, _data$createdBy2, _data$createdBy3;
32171
+ var _infoUser$roles, _infoUser$roles2, _data$createdBy, _data$textbookOwners, _data$createdBy2, _data$createdBy3, _data$sharedUsers;
32144
32172
  var index = _ref.index,
32145
32173
  data = _ref.data,
32146
32174
  role = _ref.role,
@@ -32167,11 +32195,11 @@ var TextbookRow = function TextbookRow(_ref) {
32167
32195
  });
32168
32196
  var _useTranslation = useTranslation(),
32169
32197
  t = _useTranslation.t;
32170
- var isEditable = !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && (((_data$createdBy = data.createdBy) === null || _data$createdBy === void 0 ? void 0 : _data$createdBy.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) || ((_data$textbookOwners = data.textbookOwners) === null || _data$textbookOwners === void 0 ? void 0 : _data$textbookOwners.some(function (i) {
32198
+ var isEditable = (!onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && (((_data$createdBy = data.createdBy) === null || _data$createdBy === void 0 ? void 0 : _data$createdBy.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) || ((_data$textbookOwners = data.textbookOwners) === null || _data$textbookOwners === void 0 ? void 0 : _data$textbookOwners.some(function (i) {
32171
32199
  var _infoUser$email, _infoUser$email$trim;
32172
32200
  return (i === null || i === void 0 ? void 0 : i.email.trim().toUpperCase()) === (infoUser === null || infoUser === void 0 ? void 0 : (_infoUser$email = infoUser.email) === null || _infoUser$email === void 0 ? void 0 : (_infoUser$email$trim = _infoUser$email.trim()) === null || _infoUser$email$trim === void 0 ? void 0 : _infoUser$email$trim.toUpperCase()) && (i === null || i === void 0 ? void 0 : i.academyId) === (academy === null || academy === void 0 ? void 0 : academy.id);
32173
- })));
32174
- var isDeleteAble = !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && ((_data$createdBy2 = data.createdBy) === null || _data$createdBy2 === void 0 ? void 0 : _data$createdBy2.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id);
32201
+ })))) && data.totalUses <= 0;
32202
+ var isDeleteAble = !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && data.isShared && ((_data$createdBy2 = data.createdBy) === null || _data$createdBy2 === void 0 ? void 0 : _data$createdBy2.id) === (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) && data.totalUses <= 0;
32175
32203
  var isSharable = !data.isPublic && data.isShared && onAcademy && (isAdminSite || isSuperAdminUser || !isAdmin && data.createdBy.id === infoUser.id);
32176
32204
  var handleUpdateTextbook = function handleUpdateTextbook() {
32177
32205
  onUpdateTextbook(data);
@@ -32190,13 +32218,26 @@ var TextbookRow = function TextbookRow(_ref) {
32190
32218
  };
32191
32219
  return React__default.createElement(TableRow, {
32192
32220
  key: data.id
32193
- }, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, data.name), React__default.createElement(TableCell, null, data.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(data.createdAt, t("date_format"))), React__default.createElement(TableCell, null, data.totalChapters), isTeacher && isTeacherSite && React__default.createElement(TableCell, null, (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) === ((_data$createdBy3 = data.createdBy) === null || _data$createdBy3 === void 0 ? void 0 : _data$createdBy3.id) && data.isShared && React__default.createElement(FaCheckCircle, {
32221
+ }, React__default.createElement(TableCell, null, calcOrderNumber(index)), React__default.createElement(TableCell, null, React__default.createElement(Box, {
32222
+ sx: {
32223
+ display: "flex",
32224
+ justifyContent: "center",
32225
+ alignItems: "start"
32226
+ }
32227
+ }, React__default.createElement("img", {
32228
+ src: data.coverImage,
32229
+ style: {
32230
+ objectFit: "cover"
32231
+ },
32232
+ height: 100
32233
+ }))), React__default.createElement(TableCell, null, data.name), React__default.createElement(TableCell, null, data.subject.name), React__default.createElement(TableCell, null, utcToLocalTime(data.createdAt, t("date_format"))), React__default.createElement(TableCell, null, data.totalChapters), React__default.createElement(TableCell, null, data.totalUses), isTeacher && isTeacherSite && React__default.createElement(TableCell, null, (infoUser === null || infoUser === void 0 ? void 0 : infoUser.id) === ((_data$createdBy3 = data.createdBy) === null || _data$createdBy3 === void 0 ? void 0 : _data$createdBy3.id) && data.isShared && React__default.createElement(FaCheckCircle, {
32194
32234
  color: green[700]
32195
- })), React__default.createElement(TableCell, null, !data.isPublic && data.sharedUsers.map(function (email, index) {
32196
- return index > 2 ? null : index === 2 ? React__default.createElement("div", null, "(+", data.sharedUsers.length - 2, ")") : React__default.createElement("div", {
32235
+ })), onAcademy && React__default.createElement(TableCell, null, !data.isPublic && ((_data$sharedUsers = data.sharedUsers) === null || _data$sharedUsers === void 0 ? void 0 : _data$sharedUsers.map(function (email, index) {
32236
+ var _data$sharedUsers2;
32237
+ return index > 2 ? null : index === 2 ? React__default.createElement("div", null, "(+", ((_data$sharedUsers2 = data.sharedUsers) === null || _data$sharedUsers2 === void 0 ? void 0 : _data$sharedUsers2.length) - 2, ")") : React__default.createElement("div", {
32197
32238
  key: index
32198
32239
  }, email.toLowerCase());
32199
- })), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
32240
+ }))), React__default.createElement(TableCell, null, React__default.createElement(Stack, {
32200
32241
  direction: "row",
32201
32242
  spacing: 1,
32202
32243
  alignItems: "center"
@@ -32213,13 +32254,13 @@ var TextbookRow = function TextbookRow(_ref) {
32213
32254
  onClick: handleViewTextbook
32214
32255
  }, React__default.createElement(FaEye$1, {
32215
32256
  size: 12
32216
- })), React__default.createElement(IconButton, {
32257
+ })), onAcademy && React__default.createElement(IconButton, {
32217
32258
  disabled: !isSharable,
32218
32259
  className: (!isSharable ? "bg-secondary" : "bg-info") + " text-white me-1",
32219
32260
  onClick: handleShareTextbook
32220
32261
  }, React__default.createElement(FaShare, {
32221
32262
  size: 12
32222
- })), React__default.createElement(IconButton, {
32263
+ })), onAcademy && React__default.createElement(IconButton, {
32223
32264
  disabled: !isSharable,
32224
32265
  className: (!isSharable ? "bg-secondary" : "bg-success") + " text-white me-1",
32225
32266
  onClick: handleUpdateShareTextbook
@@ -32243,8 +32284,6 @@ var TextbookList = function TextbookList(props) {
32243
32284
  var _useTranslation = useTranslation(),
32244
32285
  t = _useTranslation.t;
32245
32286
  var _useTextbookList = useTextbookList(props),
32246
- isTeacherSite = _useTextbookList.isTeacherSite,
32247
- isTeacher = _useTextbookList.isTeacher,
32248
32287
  filter = _useTextbookList.filter,
32249
32288
  textbooks = _useTextbookList.textbooks,
32250
32289
  paging = _useTextbookList.paging,
@@ -32264,6 +32303,9 @@ var TextbookList = function TextbookList(props) {
32264
32303
  var _useTextbookShare = useTextbookShare(_extends({}, props, {
32265
32304
  getData: getData
32266
32305
  })),
32306
+ isAdmin = _useTextbookShare.isAdmin,
32307
+ isAdminSite = _useTextbookShare.isAdminSite,
32308
+ onAcademy = _useTextbookShare.onAcademy,
32267
32309
  filterShare = _useTextbookShare.filterShare,
32268
32310
  textSearchShareRef = _useTextbookShare.textSearchShareRef,
32269
32311
  pagingShare = _useTextbookShare.pagingShare,
@@ -32288,12 +32330,9 @@ var TextbookList = function TextbookList(props) {
32288
32330
  handleUpdateSharedTextbook = _useTextbookShare.handleUpdateSharedTextbook,
32289
32331
  currentModel = _useTextbookShare.currentModel;
32290
32332
  var textbookHeaders = useMemo(function () {
32291
- var headers = _$8.clone(TEXTBOOK_HEADERS);
32292
- if (isTeacher && isTeacherSite) headers.splice(5, 0, {
32293
- title: "teacher_personal_textbook"
32294
- });
32333
+ var headers = TEXTBOOK_HEADERS(isAdmin, isAdminSite, onAcademy);
32295
32334
  return headers;
32296
- }, [isTeacher, isTeacherSite]);
32335
+ }, [isAdmin, isAdminSite, onAcademy]);
32297
32336
  return React__default.createElement(LayoutList, {
32298
32337
  title: t(TEXTBOOK_PAGE_TITLE)
32299
32338
  }, React__default.createElement(Grid, {
@@ -33106,25 +33145,25 @@ var NotificationList = function NotificationList(_ref) {
33106
33145
 
33107
33146
  var TEXTBOOK_URL$2 = BASE_URL + "/api/textbooks";
33108
33147
  var PREPARED_TEXTBOOK_URL$2 = BASE_URL + "/api/textbooks/prepared-textbooks";
33109
- var SUPER_ADMIN_PREPARED_TEXTBOOK_URL = SUPER_ADMIN_BASE_URL + "/api/textbook/prepared-textbooks";
33148
+ var SUPER_ADMIN_PREPARED_TEXTBOOK_URL$1 = SUPER_ADMIN_BASE_URL + "/api/textbook/prepared-textbooks";
33110
33149
  var FILE_URL = BASE_URL + "/api/file/images";
33111
33150
  var SUPER_FILE_URL = SUPER_ADMIN_BASE_URL + "/api/file/images";
33112
33151
  var uploadImageFileApi = function uploadImageFileApi(formData, isAdmin) {
33113
33152
  return apiUpload.post("" + (isAdmin ? SUPER_FILE_URL : FILE_URL), formData);
33114
33153
  };
33115
33154
  var getTextbookDetailApi = function getTextbookDetailApi(id, isAdmin) {
33116
- return api.get((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$2) + "/" + id);
33155
+ return api.get((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL$1 : TEXTBOOK_URL$2) + "/" + id);
33117
33156
  };
33118
33157
  var getTextbookListApi$3 = function getTextbookListApi(query, isAdmin) {
33119
- return api.get("" + (isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL$2), {
33158
+ return api.get("" + (isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL$1 : PREPARED_TEXTBOOK_URL$2), {
33120
33159
  params: query
33121
33160
  });
33122
33161
  };
33123
33162
  var createTextbookApi$1 = function createTextbookApi(values, isAdmin) {
33124
- return api.post("" + (isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL$2), values);
33163
+ return api.post("" + (isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL$1 : PREPARED_TEXTBOOK_URL$2), values);
33125
33164
  };
33126
33165
  var updateTextbookApi$1 = function updateTextbookApi(values, id, isAdmin) {
33127
- return api.put((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : PREPARED_TEXTBOOK_URL$2) + "/" + id, values);
33166
+ return api.put((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL$1 : PREPARED_TEXTBOOK_URL$2) + "/" + id, values);
33128
33167
  };
33129
33168
  var getCourseByTeacherAcademy = function getCourseByTeacherAcademy(email, academyId) {
33130
33169
  return api.get(TEXTBOOK_URL$2 + "/owner-teacher-course", {
@@ -33135,7 +33174,7 @@ var getCourseByTeacherAcademy = function getCourseByTeacherAcademy(email, academ
33135
33174
  });
33136
33175
  };
33137
33176
  var deleteTextbookApi$2 = function deleteTextbookApi(textbookId, isAdmin) {
33138
- return api["delete"]((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL : TEXTBOOK_URL$2) + "/" + textbookId);
33177
+ return api["delete"]((isAdmin ? SUPER_ADMIN_PREPARED_TEXTBOOK_URL$1 : TEXTBOOK_URL$2) + "/" + textbookId);
33139
33178
  };
33140
33179
 
33141
33180
  var useTextbookManagement = function useTextbookManagement(_ref) {
@@ -33175,10 +33214,10 @@ var useTextbookManagement = function useTextbookManagement(_ref) {
33175
33214
  var isAdminSite = role === Role.Admin;
33176
33215
  var onAcademy = !!(user !== null && user !== void 0 && user.academyDomain);
33177
33216
  var isSuperAdminUser = !!user && user.isSuperAdmin;
33178
- var isEditable = !selectedTextbook || !onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && selectedTextbook.isShared && (((_selectedTextbook$cre = selectedTextbook.createdBy) === null || _selectedTextbook$cre === void 0 ? void 0 : _selectedTextbook$cre.id) === (user === null || user === void 0 ? void 0 : user.id) || selectedTextbook.textbookOwners.some(function (i) {
33217
+ var isEditable = !selectedTextbook || (!onAcademy || isAdminSite || isSuperAdmin || isSuperAdminUser || !isAdmin && selectedTextbook.isShared && (((_selectedTextbook$cre = selectedTextbook.createdBy) === null || _selectedTextbook$cre === void 0 ? void 0 : _selectedTextbook$cre.id) === (user === null || user === void 0 ? void 0 : user.id) || selectedTextbook.textbookOwners.some(function (i) {
33179
33218
  var _user$email, _user$email$trim;
33180
33219
  return i.email.trim().toUpperCase() === (user === null || user === void 0 ? void 0 : (_user$email = user.email) === null || _user$email === void 0 ? void 0 : (_user$email$trim = _user$email.trim()) === null || _user$email$trim === void 0 ? void 0 : _user$email$trim.toUpperCase()) && i.academyId === (academy === null || academy === void 0 ? void 0 : academy.id);
33181
- }));
33220
+ }))) && selectedTextbook.totalUses <= 0;
33182
33221
  var disabledTextbookOwners = !selectedTextbook && isAdmin || selectedTextbook && (!isEditable || isTeacher && ((_selectedTextbook$cre2 = selectedTextbook.createdBy) === null || _selectedTextbook$cre2 === void 0 ? void 0 : _selectedTextbook$cre2.id) !== (user === null || user === void 0 ? void 0 : user.id) || isAdmin && !isSuperAdminUser);
33183
33222
  var handleOpenConfirmDeleteChapterDialog = function handleOpenConfirmDeleteChapterDialog(chapter) {
33184
33223
  setSelectedChapter(chapter);