@selfcommunity/react-ui 0.7.0-alpha.323 → 0.7.0-alpha.324

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.
@@ -192,7 +192,10 @@ function CommentObject(inProps) {
192
192
  setIsReplying(true);
193
193
  performReply(comment)
194
194
  .then((data) => {
195
- updateObject(Object.assign(Object.assign({}, obj), { comment_count: obj.comment_count + 1, latest_comments: [...obj.latest_comments, data] }));
195
+ // if add a comment -> the comment must be untruncated
196
+ const _data = data;
197
+ _data.summary_truncated = false;
198
+ updateObject(Object.assign(Object.assign({}, obj), { comment_count: obj.comment_count + 1, latest_comments: [...obj.latest_comments, _data] }));
196
199
  setReplyComment(null);
197
200
  setIsReplying(false);
198
201
  })
@@ -329,8 +332,8 @@ function CommentObject(inProps) {
329
332
  // or the comment author is the logged user
330
333
  return null;
331
334
  }
332
- const commentHtml = comment.summary_html && truncateContent ? comment.summary_html : comment.html;
333
- const summaryHtmlTruncated = comment.summary_truncated ? comment.summary_truncated : false;
335
+ const summaryHtmlTruncated = 'summary_truncated' in comment ? comment.summary_truncated : false;
336
+ const commentHtml = 'summary_html' in comment && truncateContent && summaryHtmlTruncated ? comment.summary_html : comment.html;
334
337
  const summaryHtml = (0, contribution_1.getContributionHtml)(commentHtml, scRoutingContext.url);
335
338
  return (react_1.default.createElement(react_1.default.Fragment, { key: comment.id },
336
339
  editComment && editComment.id === comment.id ? (react_1.default.createElement(material_1.Box, { className: classes.comment },
@@ -362,7 +365,8 @@ function CommentObject(inProps) {
362
365
  * @param comment
363
366
  */
364
367
  function renderLatestComment(comment) {
365
- return (react_1.default.createElement(CommentsObject_1.default, { feedObject: commentsObject.feedObject, feedObjectType: commentsObject.feedObject ? commentsObject.feedObject.type : feedObjectType, hideAdvertising: true, comments: [].concat(commentsObject.comments).reverse(), endComments: comment.latest_comments, previous: comment.comment_count > comment.latest_comments.length ? commentsObject.next : null, isLoadingPrevious: commentsObject.isLoadingNext, handlePrevious: commentsObject.getNextPage, CommentComponentProps: Object.assign(Object.assign({ onOpenReply: reply, CommentObjectSkeletonProps, elevation: elevation, linkableCommentDateTime: linkableCommentDateTime }, rest), { cacheStrategy }), CommentsObjectSkeletonProps: { count: 1, CommentObjectSkeletonProps: CommentObjectSkeletonProps }, cacheStrategy: cacheStrategy, inPlaceLoadMoreContents: true }));
368
+ return (react_1.default.createElement(CommentsObject_1.default, { feedObject: commentsObject.feedObject, feedObjectType: commentsObject.feedObject ? commentsObject.feedObject.type : feedObjectType, hideAdvertising: true, comments: [].concat(commentsObject.comments).reverse(), endComments: comment.latest_comments, previous: comment.comment_count > comment.latest_comments.length ? commentsObject.next : null, isLoadingPrevious: commentsObject.isLoadingNext, handlePrevious: commentsObject.getNextPage, CommentComponentProps: Object.assign(Object.assign({ onOpenReply: reply, CommentObjectSkeletonProps, elevation: elevation, linkableCommentDateTime: linkableCommentDateTime }, rest), { cacheStrategy,
369
+ truncateContent }), CommentsObjectSkeletonProps: { count: 1, CommentObjectSkeletonProps: CommentObjectSkeletonProps }, cacheStrategy: cacheStrategy, inPlaceLoadMoreContents: true }));
366
370
  }
367
371
  /**
368
372
  * Render comments
@@ -112,7 +112,7 @@ export interface CommentsObjectProps {
112
112
  hidePaginationLinks?: boolean;
113
113
  /**
114
114
  * Load more contents in place
115
- * rather than opening a new page
115
+ * rather than opening a new page
116
116
  */
117
117
  inPlaceLoadMoreContents?: boolean;
118
118
  /**
@@ -199,9 +199,9 @@ function CommentsObject(inProps) {
199
199
  /**
200
200
  * Render comments and load others with load more button
201
201
  */
202
- function renderComments(comments, truncateContent = null) {
202
+ function renderComments(comments) {
203
203
  return (react_1.default.createElement(react_1.default.Fragment, null, comments.map((comment, index) => (react_1.default.createElement(react_1.default.Fragment, { key: index },
204
- react_1.default.createElement(CommentComponent, Object.assign({ key: comment.id, commentObject: comment, onOpenReply: openReplyBox, feedObject: obj }, CommentComponentProps, { CommentObjectSkeletonProps: CommentObjectSkeletonProps }, (truncateContent !== null ? { truncateContent } : {}))),
204
+ react_1.default.createElement(CommentComponent, Object.assign({ key: comment.id, commentObject: comment, onOpenReply: openReplyBox, feedObject: obj }, CommentComponentProps, { CommentObjectSkeletonProps: CommentObjectSkeletonProps })),
205
205
  advPosition === index && renderAdvertising())))));
206
206
  }
207
207
  /**
@@ -233,8 +233,8 @@ function CommentsObject(inProps) {
233
233
  * Renders root object
234
234
  */
235
235
  return (react_1.default.createElement(Root, Object.assign({ id: id, className: (0, classnames_1.default)(classes.root, className) }, rest),
236
- renderComments(getFilteredComments(startComments), false),
236
+ renderComments(getFilteredComments(startComments)),
237
237
  commentsRendered,
238
- renderComments(getFilteredComments(endComments), false)));
238
+ renderComments(getFilteredComments(endComments))));
239
239
  }
240
240
  exports.default = CommentsObject;
@@ -415,7 +415,7 @@ const Feed = (inProps, ref) => {
415
415
  react_1.default.createElement(CustomAdv_1.default, Object.assign({ position: types_1.SCCustomAdvPosition.POSITION_BELOW_TOPBAR }, CustomAdvProps)))) : null,
416
416
  react_1.default.createElement(material_1.Grid, { item: true, xs: 12, md: 7 },
417
417
  react_1.default.createElement("div", { style: { overflow: 'visible' } },
418
- react_1.default.createElement(InfiniteScroll_1.default, { className: classes.left, dataLength: feedDataLeft.length, next: getNextPage, previous: getPreviousPage, hasMoreNext: Boolean(feedDataObject.next), hasMorePrevious: Boolean(feedDataObject.previous), header: PreviousPageLink, footer: NextPageLink, loaderNext: react_1.default.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), loaderPrevious: react_1.default.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), scrollThreshold: 1, endMessage: react_1.default.createElement(material_1.Box, { className: classes.end },
418
+ react_1.default.createElement(InfiniteScroll_1.default, { className: classes.left, dataLength: feedDataLeft.length, next: getNextPage, previous: getPreviousPage, hasMoreNext: Boolean(feedDataObject.next), hasMorePrevious: Boolean(feedDataObject.previous), header: PreviousPageLink, footer: NextPageLink, loaderNext: react_1.default.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), loaderPrevious: react_1.default.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), scrollThreshold: '90%', endMessage: react_1.default.createElement(material_1.Box, { className: classes.end },
419
419
  react_1.default.createElement(Widget_1.default, { className: classes.endMessage },
420
420
  react_1.default.createElement(material_1.CardContent, null, endMessage)),
421
421
  advEnabled && !hideAdvs && enabledCustomAdvPositions.includes(types_1.SCCustomAdvPosition.POSITION_ABOVE_FOOTER_BAR) ? (react_1.default.createElement(CustomAdv_1.default, Object.assign({ position: types_1.SCCustomAdvPosition.POSITION_ABOVE_FOOTER_BAR }, CustomAdvProps))) : null,
@@ -90,7 +90,7 @@ function Activities(inProps) {
90
90
  * Render comments of feedObject
91
91
  */
92
92
  function renderComments() {
93
- return (react_1.default.createElement(react_1.default.Fragment, null, (commentsObject.feedObject.comment_count > 0 || comments.length > 0) && (react_1.default.createElement(CommentsObject_1.default, Object.assign({ feedObject: commentsObject.feedObject, comments: commentsObject.comments, startComments: comments, next: commentsObject.next, isLoadingNext: commentsObject.isLoadingNext, handleNext: handleNext, totalLoadedComments: commentsObject.comments.length + comments.length, totalComments: commentsObject.feedObject.comment_count, hideAdvertising: true }, CommentsObjectProps, { cacheStrategy: cacheStrategy, CommentsObjectSkeletonProps: { count: skeletonsCount }, CommentComponentProps: Object.assign(Object.assign(Object.assign({}, CommentComponentProps), { cacheStrategy }), (CommentsObjectProps.CommentComponentProps ? CommentsObjectProps.CommentComponentProps : {})), inPlaceLoadMoreContents: false })))));
93
+ return (react_1.default.createElement(react_1.default.Fragment, null, (commentsObject.feedObject.comment_count > 0 || comments.length > 0) && (react_1.default.createElement(CommentsObject_1.default, Object.assign({ feedObject: commentsObject.feedObject, comments: commentsObject.comments, startComments: comments, next: commentsObject.next, isLoadingNext: commentsObject.isLoadingNext, handleNext: handleNext, totalLoadedComments: commentsObject.comments.length + comments.length, totalComments: commentsObject.feedObject.comment_count, hideAdvertising: true }, CommentsObjectProps, { cacheStrategy: cacheStrategy, CommentsObjectSkeletonProps: { count: skeletonsCount }, CommentComponentProps: Object.assign(Object.assign(Object.assign({ truncateContent: true }, CommentComponentProps), { cacheStrategy }), (CommentsObjectProps.CommentComponentProps ? CommentsObjectProps.CommentComponentProps : {})), inPlaceLoadMoreContents: false })))));
94
94
  }
95
95
  /**
96
96
  * Renders root object
@@ -348,12 +348,15 @@ function FeedObject(inProps) {
348
348
  setIsReplying(true);
349
349
  performReply(comment)
350
350
  .then((data) => {
351
+ // if add a comment -> the comment must be untruncated
352
+ const _data = data;
353
+ _data.summary_truncated = false;
351
354
  if (selectedActivities !== feedObject_1.SCFeedObjectActivitiesType.RECENT_COMMENTS) {
352
355
  setComments([]);
353
356
  setSelectedActivities(feedObject_1.SCFeedObjectActivitiesType.RECENT_COMMENTS);
354
357
  }
355
358
  else {
356
- setComments([...[data], ...comments]);
359
+ setComments([...[_data], ...comments]);
357
360
  }
358
361
  setIsReplying(false);
359
362
  const newObj = Object.assign({}, obj, { comment_count: obj.comment_count + 1 });
@@ -380,8 +383,8 @@ function FeedObject(inProps) {
380
383
  * Get contribution summary
381
384
  */
382
385
  const getContributionSummary = (0, react_1.useCallback)((obj, template) => {
383
- const contributionHtml = obj.summary_html ? obj.summary_html : obj.summary;
384
- const summaryHtmlTruncated = obj.summary_truncated ? obj.summary_truncated : obj.html.length >= Feed_1.MAX_SUMMARY_LENGTH;
386
+ const contributionHtml = 'summary_html' in obj ? obj.summary_html : obj.summary;
387
+ const summaryHtmlTruncated = 'summary_truncated' in obj ? obj.summary_truncated : obj.html.length >= Feed_1.MAX_SUMMARY_LENGTH;
385
388
  const summaryHtml = expanded || template === feedObject_1.SCFeedObjectTemplateType.DETAIL
386
389
  ? (0, contribution_1.getContributionHtml)(obj.html, scRoutingContext.url)
387
390
  : (0, contribution_1.getContributionHtml)(contributionHtml, scRoutingContext.url);
@@ -190,7 +190,10 @@ export default function CommentObject(inProps) {
190
190
  setIsReplying(true);
191
191
  performReply(comment)
192
192
  .then((data) => {
193
- updateObject(Object.assign(Object.assign({}, obj), { comment_count: obj.comment_count + 1, latest_comments: [...obj.latest_comments, data] }));
193
+ // if add a comment -> the comment must be untruncated
194
+ const _data = data;
195
+ _data.summary_truncated = false;
196
+ updateObject(Object.assign(Object.assign({}, obj), { comment_count: obj.comment_count + 1, latest_comments: [...obj.latest_comments, _data] }));
194
197
  setReplyComment(null);
195
198
  setIsReplying(false);
196
199
  })
@@ -327,8 +330,8 @@ export default function CommentObject(inProps) {
327
330
  // or the comment author is the logged user
328
331
  return null;
329
332
  }
330
- const commentHtml = comment.summary_html && truncateContent ? comment.summary_html : comment.html;
331
- const summaryHtmlTruncated = comment.summary_truncated ? comment.summary_truncated : false;
333
+ const summaryHtmlTruncated = 'summary_truncated' in comment ? comment.summary_truncated : false;
334
+ const commentHtml = 'summary_html' in comment && truncateContent && summaryHtmlTruncated ? comment.summary_html : comment.html;
332
335
  const summaryHtml = getContributionHtml(commentHtml, scRoutingContext.url);
333
336
  return (React.createElement(React.Fragment, { key: comment.id },
334
337
  editComment && editComment.id === comment.id ? (React.createElement(Box, { className: classes.comment },
@@ -360,7 +363,8 @@ export default function CommentObject(inProps) {
360
363
  * @param comment
361
364
  */
362
365
  function renderLatestComment(comment) {
363
- return (React.createElement(CommentsObject, { feedObject: commentsObject.feedObject, feedObjectType: commentsObject.feedObject ? commentsObject.feedObject.type : feedObjectType, hideAdvertising: true, comments: [].concat(commentsObject.comments).reverse(), endComments: comment.latest_comments, previous: comment.comment_count > comment.latest_comments.length ? commentsObject.next : null, isLoadingPrevious: commentsObject.isLoadingNext, handlePrevious: commentsObject.getNextPage, CommentComponentProps: Object.assign(Object.assign({ onOpenReply: reply, CommentObjectSkeletonProps, elevation: elevation, linkableCommentDateTime: linkableCommentDateTime }, rest), { cacheStrategy }), CommentsObjectSkeletonProps: { count: 1, CommentObjectSkeletonProps: CommentObjectSkeletonProps }, cacheStrategy: cacheStrategy, inPlaceLoadMoreContents: true }));
366
+ return (React.createElement(CommentsObject, { feedObject: commentsObject.feedObject, feedObjectType: commentsObject.feedObject ? commentsObject.feedObject.type : feedObjectType, hideAdvertising: true, comments: [].concat(commentsObject.comments).reverse(), endComments: comment.latest_comments, previous: comment.comment_count > comment.latest_comments.length ? commentsObject.next : null, isLoadingPrevious: commentsObject.isLoadingNext, handlePrevious: commentsObject.getNextPage, CommentComponentProps: Object.assign(Object.assign({ onOpenReply: reply, CommentObjectSkeletonProps, elevation: elevation, linkableCommentDateTime: linkableCommentDateTime }, rest), { cacheStrategy,
367
+ truncateContent }), CommentsObjectSkeletonProps: { count: 1, CommentObjectSkeletonProps: CommentObjectSkeletonProps }, cacheStrategy: cacheStrategy, inPlaceLoadMoreContents: true }));
364
368
  }
365
369
  /**
366
370
  * Render comments
@@ -112,7 +112,7 @@ export interface CommentsObjectProps {
112
112
  hidePaginationLinks?: boolean;
113
113
  /**
114
114
  * Load more contents in place
115
- * rather than opening a new page
115
+ * rather than opening a new page
116
116
  */
117
117
  inPlaceLoadMoreContents?: boolean;
118
118
  /**
@@ -197,9 +197,9 @@ export default function CommentsObject(inProps) {
197
197
  /**
198
198
  * Render comments and load others with load more button
199
199
  */
200
- function renderComments(comments, truncateContent = null) {
200
+ function renderComments(comments) {
201
201
  return (React.createElement(React.Fragment, null, comments.map((comment, index) => (React.createElement(React.Fragment, { key: index },
202
- React.createElement(CommentComponent, Object.assign({ key: comment.id, commentObject: comment, onOpenReply: openReplyBox, feedObject: obj }, CommentComponentProps, { CommentObjectSkeletonProps: CommentObjectSkeletonProps }, (truncateContent !== null ? { truncateContent } : {}))),
202
+ React.createElement(CommentComponent, Object.assign({ key: comment.id, commentObject: comment, onOpenReply: openReplyBox, feedObject: obj }, CommentComponentProps, { CommentObjectSkeletonProps: CommentObjectSkeletonProps })),
203
203
  advPosition === index && renderAdvertising())))));
204
204
  }
205
205
  /**
@@ -231,7 +231,7 @@ export default function CommentsObject(inProps) {
231
231
  * Renders root object
232
232
  */
233
233
  return (React.createElement(Root, Object.assign({ id: id, className: classNames(classes.root, className) }, rest),
234
- renderComments(getFilteredComments(startComments), false),
234
+ renderComments(getFilteredComments(startComments)),
235
235
  commentsRendered,
236
- renderComments(getFilteredComments(endComments), false)));
236
+ renderComments(getFilteredComments(endComments))));
237
237
  }
@@ -412,7 +412,7 @@ const Feed = (inProps, ref) => {
412
412
  React.createElement(CustomAdv, Object.assign({ position: SCCustomAdvPosition.POSITION_BELOW_TOPBAR }, CustomAdvProps)))) : null,
413
413
  React.createElement(Grid, { item: true, xs: 12, md: 7 },
414
414
  React.createElement("div", { style: { overflow: 'visible' } },
415
- React.createElement(InfiniteScroll, { className: classes.left, dataLength: feedDataLeft.length, next: getNextPage, previous: getPreviousPage, hasMoreNext: Boolean(feedDataObject.next), hasMorePrevious: Boolean(feedDataObject.previous), header: PreviousPageLink, footer: NextPageLink, loaderNext: React.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), loaderPrevious: React.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), scrollThreshold: 1, endMessage: React.createElement(Box, { className: classes.end },
415
+ React.createElement(InfiniteScroll, { className: classes.left, dataLength: feedDataLeft.length, next: getNextPage, previous: getPreviousPage, hasMoreNext: Boolean(feedDataObject.next), hasMorePrevious: Boolean(feedDataObject.previous), header: PreviousPageLink, footer: NextPageLink, loaderNext: React.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), loaderPrevious: React.createElement(ItemSkeleton, Object.assign({}, ItemSkeletonProps)), scrollThreshold: '90%', endMessage: React.createElement(Box, { className: classes.end },
416
416
  React.createElement(Widget, { className: classes.endMessage },
417
417
  React.createElement(CardContent, null, endMessage)),
418
418
  advEnabled && !hideAdvs && enabledCustomAdvPositions.includes(SCCustomAdvPosition.POSITION_ABOVE_FOOTER_BAR) ? (React.createElement(CustomAdv, Object.assign({ position: SCCustomAdvPosition.POSITION_ABOVE_FOOTER_BAR }, CustomAdvProps))) : null,
@@ -88,7 +88,7 @@ export default function Activities(inProps) {
88
88
  * Render comments of feedObject
89
89
  */
90
90
  function renderComments() {
91
- return (React.createElement(React.Fragment, null, (commentsObject.feedObject.comment_count > 0 || comments.length > 0) && (React.createElement(CommentsObject, Object.assign({ feedObject: commentsObject.feedObject, comments: commentsObject.comments, startComments: comments, next: commentsObject.next, isLoadingNext: commentsObject.isLoadingNext, handleNext: handleNext, totalLoadedComments: commentsObject.comments.length + comments.length, totalComments: commentsObject.feedObject.comment_count, hideAdvertising: true }, CommentsObjectProps, { cacheStrategy: cacheStrategy, CommentsObjectSkeletonProps: { count: skeletonsCount }, CommentComponentProps: Object.assign(Object.assign(Object.assign({}, CommentComponentProps), { cacheStrategy }), (CommentsObjectProps.CommentComponentProps ? CommentsObjectProps.CommentComponentProps : {})), inPlaceLoadMoreContents: false })))));
91
+ return (React.createElement(React.Fragment, null, (commentsObject.feedObject.comment_count > 0 || comments.length > 0) && (React.createElement(CommentsObject, Object.assign({ feedObject: commentsObject.feedObject, comments: commentsObject.comments, startComments: comments, next: commentsObject.next, isLoadingNext: commentsObject.isLoadingNext, handleNext: handleNext, totalLoadedComments: commentsObject.comments.length + comments.length, totalComments: commentsObject.feedObject.comment_count, hideAdvertising: true }, CommentsObjectProps, { cacheStrategy: cacheStrategy, CommentsObjectSkeletonProps: { count: skeletonsCount }, CommentComponentProps: Object.assign(Object.assign(Object.assign({ truncateContent: true }, CommentComponentProps), { cacheStrategy }), (CommentsObjectProps.CommentComponentProps ? CommentsObjectProps.CommentComponentProps : {})), inPlaceLoadMoreContents: false })))));
92
92
  }
93
93
  /**
94
94
  * Renders root object
@@ -346,12 +346,15 @@ export default function FeedObject(inProps) {
346
346
  setIsReplying(true);
347
347
  performReply(comment)
348
348
  .then((data) => {
349
+ // if add a comment -> the comment must be untruncated
350
+ const _data = data;
351
+ _data.summary_truncated = false;
349
352
  if (selectedActivities !== SCFeedObjectActivitiesType.RECENT_COMMENTS) {
350
353
  setComments([]);
351
354
  setSelectedActivities(SCFeedObjectActivitiesType.RECENT_COMMENTS);
352
355
  }
353
356
  else {
354
- setComments([...[data], ...comments]);
357
+ setComments([...[_data], ...comments]);
355
358
  }
356
359
  setIsReplying(false);
357
360
  const newObj = Object.assign({}, obj, { comment_count: obj.comment_count + 1 });
@@ -378,8 +381,8 @@ export default function FeedObject(inProps) {
378
381
  * Get contribution summary
379
382
  */
380
383
  const getContributionSummary = useCallback((obj, template) => {
381
- const contributionHtml = obj.summary_html ? obj.summary_html : obj.summary;
382
- const summaryHtmlTruncated = obj.summary_truncated ? obj.summary_truncated : obj.html.length >= MAX_SUMMARY_LENGTH;
384
+ const contributionHtml = 'summary_html' in obj ? obj.summary_html : obj.summary;
385
+ const summaryHtmlTruncated = 'summary_truncated' in obj ? obj.summary_truncated : obj.html.length >= MAX_SUMMARY_LENGTH;
383
386
  const summaryHtml = expanded || template === SCFeedObjectTemplateType.DETAIL
384
387
  ? getContributionHtml(obj.html, scRoutingContext.url)
385
388
  : getContributionHtml(contributionHtml, scRoutingContext.url);