touchstudy-core 0.1.170 → 0.1.171

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6464,6 +6464,28 @@ var formatPhoneNumber = function formatPhoneNumber(phoneNumberString) {
6464
6464
  return phoneNumberString;
6465
6465
  };
6466
6466
 
6467
+ var cleanRichText = function cleanRichText(html, fontSize) {
6468
+ if (fontSize === void 0) {
6469
+ fontSize = "1rem";
6470
+ }
6471
+ var container = document.createElement('div');
6472
+ container.innerHTML = html;
6473
+ var tagsToRemove = ['script', 'style', 'img', 'video', 'audio', 'iframe', 'canvas', 'object', 'embed', 'table'];
6474
+ tagsToRemove.forEach(function (tag) {
6475
+ container.querySelectorAll(tag).forEach(function (el) {
6476
+ return el.remove();
6477
+ });
6478
+ });
6479
+ var textTags = ['p', 'div', 'section', 'article', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'address', 'aside', 'span', 'a', 'strong', 'b', 'em', 'i', 'u', 'small', 'abbr', 'cite', 'code', 'mark', 'sub', 'sup', 'time', 'kbd', 'samp', 'var', 'q', 'dfn', 'br', 'label', 'legend', 'summary', 'dt', 'dd', 'caption', 'figcaption', 'title'];
6480
+ container.querySelectorAll('*').forEach(function (el) {
6481
+ if (textTags.includes(el.tagName)) {
6482
+ el.style.fontSize = fontSize;
6483
+ el.style.lineHeight = "1";
6484
+ }
6485
+ });
6486
+ return container.innerHTML;
6487
+ };
6488
+
6467
6489
  var getLocalDayOfWeek = function getLocalDayOfWeek(utcDateTime, dayOfWeek) {
6468
6490
  var currentDayOfWeek = moment.utc(utcDateTime).weekday();
6469
6491
  var diff = dayOfWeek - currentDayOfWeek;
@@ -15768,15 +15790,18 @@ var NoteItem = function NoteItem(_ref) {
15768
15790
  var handleItemClick = function handleItemClick() {
15769
15791
  onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(data);
15770
15792
  };
15793
+ var cleanedRichText = React.useMemo(function () {
15794
+ return cleanRichText(data.content);
15795
+ }, [data.content]);
15771
15796
  React.useEffect(function () {
15772
15797
  onLoad === null || onLoad === void 0 ? void 0 : onLoad();
15773
- }, []);
15798
+ }, [cleanedRichText, JSON.stringify(data)]);
15774
15799
  React.useEffect(function () {
15775
15800
  if (window.MathJax) {
15776
15801
  var _window$MathJax;
15777
15802
  (_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
15778
15803
  }
15779
- }, [data.content]);
15804
+ }, [cleanedRichText]);
15780
15805
  return React__default.createElement(material.Box, Object.assign({}, NoteItemStyles.root, {
15781
15806
  onClick: handleItemClick,
15782
15807
  sx: {
@@ -15808,7 +15833,7 @@ var NoteItem = function NoteItem(_ref) {
15808
15833
  overflow: "hidden"
15809
15834
  },
15810
15835
  dangerouslySetInnerHTML: {
15811
- __html: data.content || ""
15836
+ __html: cleanedRichText
15812
15837
  }
15813
15838
  }))), React__default.createElement(material.Box, null, (isAdmin || data.isOwned) && React__default.createElement(material.ClickAwayListener, {
15814
15839
  onClickAway: onClose
@@ -15921,6 +15946,9 @@ var NoteItemList = function NoteItemList(_ref) {
15921
15946
  onView(data);
15922
15947
  };
15923
15948
  var disabled = !data.isOwned && (!isAdminUser || data.type == undefined || data.type == exports.NoteType.TeacherToAllAdmin || data.type == exports.NoteType.TeacherToTeachers);
15949
+ var cleanedRichText = React.useMemo(function () {
15950
+ return cleanRichText(data.content);
15951
+ }, [data.content]);
15924
15952
  React.useEffect(function () {
15925
15953
  if (window.MathJax) {
15926
15954
  var _window$MathJax;
@@ -15955,7 +15983,7 @@ var NoteItemList = function NoteItemList(_ref) {
15955
15983
  overflow: "hidden"
15956
15984
  },
15957
15985
  dangerouslySetInnerHTML: {
15958
- __html: data.content
15986
+ __html: cleanedRichText
15959
15987
  }
15960
15988
  })), React__default.createElement(TableCell, {
15961
15989
  className: "text-nowrap"
@@ -17668,7 +17696,7 @@ var ExamResultItem = function ExamResultItem(_ref) {
17668
17696
  };
17669
17697
  React.useEffect(function () {
17670
17698
  onLoad === null || onLoad === void 0 ? void 0 : onLoad();
17671
- }, []);
17699
+ }, [JSON.stringify(data)]);
17672
17700
  var examTime = React.useMemo(function () {
17673
17701
  return utcToLocalTime(data.startTime, "HH:mm") + " ~ " + utcToLocalTime(data.endTime, "HH:mm");
17674
17702
  }, [data.startTime, data.endTime]);
@@ -23229,7 +23257,7 @@ var TextbookResultItem = function TextbookResultItem(_ref) {
23229
23257
  };
23230
23258
  React.useEffect(function () {
23231
23259
  onLoad === null || onLoad === void 0 ? void 0 : onLoad();
23232
- }, []);
23260
+ }, [JSON.stringify(data)]);
23233
23261
  return React__default.createElement(material.Stack, {
23234
23262
  height: "100%",
23235
23263
  direction: "column",
@@ -26175,7 +26203,7 @@ var CourseAttendanceItem = function CourseAttendanceItem(_ref) {
26175
26203
  var lastAttendance = timAgo(data.lastAttendanceDate, t);
26176
26204
  React.useEffect(function () {
26177
26205
  onLoad === null || onLoad === void 0 ? void 0 : onLoad();
26178
- }, []);
26206
+ }, [JSON.stringify(data)]);
26179
26207
  return React__default.createElement(material.Stack, {
26180
26208
  direction: "column",
26181
26209
  px: 2,
@@ -39114,10 +39142,19 @@ var AnnouncementItem = function AnnouncementItem(_ref) {
39114
39142
  onLoad = _ref.onLoad;
39115
39143
  var _useTranslation = reactI18next.useTranslation(),
39116
39144
  t = _useTranslation.t;
39145
+ var announcementData = convertAnnouncementData(t, role, data);
39146
+ var cleanedRichText = React.useMemo(function () {
39147
+ return cleanRichText(announcementData.content);
39148
+ }, [announcementData.content]);
39149
+ React.useEffect(function () {
39150
+ if (window.MathJax) {
39151
+ var _window$MathJax;
39152
+ (_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
39153
+ }
39154
+ }, [cleanedRichText]);
39117
39155
  React.useEffect(function () {
39118
39156
  onLoad();
39119
- }, []);
39120
- var announcementData = convertAnnouncementData(t, role, data);
39157
+ }, [cleanedRichText, data.createdAt, announcementData.action, announcementData.name]);
39121
39158
  return React__default.createElement(React.Fragment, null, renderLink(React__default.createElement(material.ListItemButton, {
39122
39159
  sx: _extends({
39123
39160
  py: 1.5,
@@ -39147,7 +39184,10 @@ var AnnouncementItem = function AnnouncementItem(_ref) {
39147
39184
  display: "inline-block",
39148
39185
  px: "4px"
39149
39186
  }, announcementData.action + ":"), React__default.createElement(material.Box, {
39150
- display: "inline-block"
39187
+ display: "inline-block",
39188
+ sx: {
39189
+ verticalAlign: "middle"
39190
+ }
39151
39191
  }, React__default.createElement(material.Box, {
39152
39192
  sx: {
39153
39193
  display: "-webkit-box",
@@ -39158,7 +39198,7 @@ var AnnouncementItem = function AnnouncementItem(_ref) {
39158
39198
  overflow: "hidden"
39159
39199
  },
39160
39200
  dangerouslySetInnerHTML: {
39161
- __html: announcementData.content || ""
39201
+ __html: cleanedRichText
39162
39202
  }
39163
39203
  }))),
39164
39204
  secondary: React__default.createElement(material.Typography, {
@@ -40717,6 +40757,7 @@ exports.VirtualTableView = VirtualTableView;
40717
40757
  exports.api = api;
40718
40758
  exports.apiUpload = apiUpload;
40719
40759
  exports.canAccessRoute = canAccess;
40760
+ exports.cleanRichText = cleanRichText;
40720
40761
  exports.convertHHMMSStoSeconds = convertHHMMSStoSeconds;
40721
40762
  exports.createRecentUserActionListApi = createRecentUserActionListApi;
40722
40763
  exports.diffFromNow = diffFromNow;