@selfcommunity/react-ui 0.1.2-alpha.8 → 0.1.3-alpha.0

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.
Files changed (45) hide show
  1. package/lib/cjs/components/BroadcastMessages/Message.js +2 -2
  2. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js +3 -20
  3. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js +1 -4
  4. package/lib/cjs/components/CommentObject/CommentObject.js +4 -1
  5. package/lib/cjs/components/Feed/Feed.js +11 -8
  6. package/lib/cjs/components/FeedObject/FeedObject.js +21 -31
  7. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js +2 -8
  8. package/lib/cjs/components/UsersFollowed/UsersFollowed.js +3 -18
  9. package/lib/cjs/shared/AutoPlayer/index.js +11 -8
  10. package/lib/cjs/shared/BaseDialog/BaseDialog.js +5 -0
  11. package/lib/cjs/shared/DateTimeAgo/index.js +18 -15
  12. package/lib/cjs/shared/Media/Link/PreviewComponent.js +2 -1
  13. package/lib/cjs/shared/Media/Share/PreviewComponent.js +2 -1
  14. package/lib/cjs/shared/Media/Video/PreviewComponent.js +2 -8
  15. package/lib/esm/components/BroadcastMessages/Message.js +2 -2
  16. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js +3 -20
  17. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js +1 -4
  18. package/lib/esm/components/CommentObject/CommentObject.js +4 -1
  19. package/lib/esm/components/Feed/Feed.js +11 -8
  20. package/lib/esm/components/FeedObject/FeedObject.js +21 -31
  21. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js +2 -8
  22. package/lib/esm/components/UsersFollowed/UsersFollowed.js +3 -18
  23. package/lib/esm/react-ui/src/components/BroadcastMessages/Message.d.ts.map +1 -1
  24. package/lib/esm/react-ui/src/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
  25. package/lib/esm/react-ui/src/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
  26. package/lib/esm/react-ui/src/components/CommentObject/CommentObject.d.ts.map +1 -1
  27. package/lib/esm/react-ui/src/components/Feed/Feed.d.ts +5 -0
  28. package/lib/esm/react-ui/src/components/Feed/Feed.d.ts.map +1 -1
  29. package/lib/esm/react-ui/src/components/FeedObject/FeedObject.d.ts.map +1 -1
  30. package/lib/esm/react-ui/src/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
  31. package/lib/esm/react-ui/src/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
  32. package/lib/esm/react-ui/src/shared/AutoPlayer/index.d.ts.map +1 -1
  33. package/lib/esm/react-ui/src/shared/BaseDialog/BaseDialog.d.ts.map +1 -1
  34. package/lib/esm/react-ui/src/shared/DateTimeAgo/index.d.ts.map +1 -1
  35. package/lib/esm/react-ui/src/shared/Media/Video/PreviewComponent.d.ts.map +1 -1
  36. package/lib/esm/shared/AutoPlayer/index.js +11 -8
  37. package/lib/esm/shared/BaseDialog/BaseDialog.js +5 -0
  38. package/lib/esm/shared/DateTimeAgo/index.js +18 -15
  39. package/lib/esm/shared/Media/Link/PreviewComponent.js +2 -1
  40. package/lib/esm/shared/Media/Share/PreviewComponent.js +2 -1
  41. package/lib/esm/shared/Media/Video/PreviewComponent.js +2 -8
  42. package/lib/umd/react-ui.js +21 -21
  43. package/lib/umd/react-ui.js.LICENSE.txt +5 -1
  44. package/lib/umd/react-ui.js.map +1 -1
  45. package/package.json +7 -8
@@ -85,7 +85,7 @@ const Root = (0, _styles.styled)(_Widget.default, {
85
85
  height: 30
86
86
  }
87
87
  }));
88
- const PREFERENCES = [_reactCore.SCPreferences.LOGO_NAVBAR_LOGO, _reactCore.SCPreferences.TEXT_APPLICATION_NAME];
88
+ const PREFERENCES = [_reactCore.SCPreferences.LOGO_NAVBAR_LOGO_MOBILE, _reactCore.SCPreferences.TEXT_APPLICATION_NAME];
89
89
 
90
90
  function Message(props) {
91
91
  // PROPS
@@ -181,7 +181,7 @@ function Message(props) {
181
181
  className: classes.header,
182
182
  avatar: /*#__PURE__*/_react.default.createElement(_material.Avatar, {
183
183
  alt: preferences[_reactCore.SCPreferences.TEXT_APPLICATION_NAME],
184
- src: preferences[_reactCore.SCPreferences.LOGO_NAVBAR_LOGO]
184
+ src: preferences[_reactCore.SCPreferences.LOGO_NAVBAR_LOGO_MOBILE_MOBILE]
185
185
  }),
186
186
  action: template === _types.SCBroadcastMessageTemplateType.DETAIL && /*#__PURE__*/_react.default.createElement(_material.IconButton, {
187
187
  "aria-label": "close",
@@ -111,7 +111,6 @@ function CategoriesFollowed(inProps) {
111
111
  } = props; // STATE
112
112
 
113
113
  const [categories, setCategories] = (0, _react.useState)([]);
114
- const [visibleCategories, setVisibleCategories] = (0, _react.useState)(limit);
115
114
  const [loading, setLoading] = (0, _react.useState)(true);
116
115
  const [hasMore, setHasMore] = (0, _react.useState)(false);
117
116
  const [total, setTotal] = (0, _react.useState)(0);
@@ -129,17 +128,12 @@ function CategoriesFollowed(inProps) {
129
128
  if (scUserContext.user['id'] === userId) {
130
129
  setCategories(categories.filter(c => c.id !== category.id));
131
130
  setTotal(prev => prev - 1);
132
-
133
- if (visibleCategories < limit && total > 1) {
134
- loadCategories(1);
135
- }
131
+ setHasMore(total - 1 > limit);
136
132
  } else {
137
133
  const newCategories = [...categories];
138
134
  const index = newCategories.findIndex(u => u.id === category.id);
139
135
 
140
136
  if (index !== -1) {
141
- console.log(category.followed);
142
-
143
137
  if (category.followed) {
144
138
  newCategories[index].followers_counter = category.followers_counter - 1;
145
139
  newCategories[index].followed = !category.followed;
@@ -167,7 +161,7 @@ function CategoriesFollowed(inProps) {
167
161
  setCategories([...categories, ...data]);
168
162
  setTotal(data.length);
169
163
  setNext(data['next']);
170
- setHasMore(data.length > visibleCategories);
164
+ setHasMore(data.length > limit);
171
165
  setLoading(false);
172
166
  }).catch(error => {
173
167
  setLoading(false);
@@ -176,17 +170,6 @@ function CategoriesFollowed(inProps) {
176
170
  });
177
171
  }
178
172
  }
179
- /**
180
- * Loads more categories when followed list changes
181
- */
182
-
183
-
184
- function loadCategories(n) {
185
- const newIndex = visibleCategories + n;
186
- const newHasMore = newIndex < categories.length - 1;
187
- setVisibleCategories(newIndex);
188
- setHasMore(newHasMore);
189
- }
190
173
  /**
191
174
  * On mount, fetches the list of categories followed
192
175
  */
@@ -209,7 +192,7 @@ function CategoriesFollowed(inProps) {
209
192
  })}`), !total ? /*#__PURE__*/_react.default.createElement(_material.Typography, {
210
193
  className: classes.noResults,
211
194
  variant: "body2"
212
- }, `${intl.formatMessage(messages.noCategories)}`) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.default, null, categories.slice(0, visibleCategories).map(category => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
195
+ }, `${intl.formatMessage(messages.noCategories)}`) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.default, null, categories.slice(0, limit).map(category => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
213
196
  key: category.id
214
197
  }, /*#__PURE__*/_react.default.createElement(_Category.default, _extends({
215
198
  elevation: 0,
@@ -110,10 +110,7 @@ function CategoriesSuggestion(inProps) {
110
110
  function handleOnFollowCategory(category, follow) {
111
111
  setCategories(categories.filter(c => c.id !== category.id));
112
112
  setTotal(prev => prev - 1);
113
-
114
- if (visibleCategories < limit && total > 1) {
115
- loadCategories(1);
116
- }
113
+ setHasMore(total - 1 > limit);
117
114
  }
118
115
  /**
119
116
  * Fetches categories suggestion list
@@ -117,7 +117,7 @@ const Root = (0, _styles.styled)(_material.Box, {
117
117
  [`& .${classes.nestedComments}`]: {
118
118
  paddingTop: 0,
119
119
  paddingBottom: 0,
120
- paddingLeft: 55,
120
+ paddingLeft: 25,
121
121
  '& ul.MuiList-root': {
122
122
  paddingTop: 0,
123
123
  paddingBottom: 0,
@@ -125,6 +125,9 @@ const Root = (0, _styles.styled)(_material.Box, {
125
125
  '& li.MuiListItem-root': {
126
126
  paddingTop: 5
127
127
  }
128
+ },
129
+ [theme.breakpoints.up('sm')]: {
130
+ paddingLeft: 55
128
131
  }
129
132
  },
130
133
  [`& .${classes.content}`]: {
@@ -35,6 +35,8 @@ var _pubsubJs = _interopRequireDefault(require("pubsub-js"));
35
35
 
36
36
  var _useThemeProps = _interopRequireDefault(require("@mui/material/styles/useThemeProps"));
37
37
 
38
+ var _url = require("../../utils/url");
39
+
38
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
41
 
40
42
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -110,6 +112,9 @@ const Feed = (inProps, ref) => {
110
112
  id = 'feed',
111
113
  className,
112
114
  endpoint,
115
+ endpointQueryParams = [{
116
+ limit: 5
117
+ }],
113
118
  endMessage = /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
114
119
  id: "ui.feed.noOtherFeedObject",
115
120
  defaultMessage: "ui.feed.noOtherFeedObject"
@@ -135,7 +140,7 @@ const Feed = (inProps, ref) => {
135
140
 
136
141
  const [feedData, setFeedData] = (0, _react.useState)([]);
137
142
  const [loading, setLoading] = (0, _react.useState)(false);
138
- const [next, setNext] = (0, _react.useState)(endpoint.url({})); // CONTEXT
143
+ const [next, setNext] = (0, _react.useState)((0, _url.appendURLSearchParams)(endpoint.url({}), endpointQueryParams)); // CONTEXT
139
144
 
140
145
  const scPreferences = (0, _reactCore.useSCPreferences)();
141
146
  const scUserContext = (0, _react.useContext)(_reactCore.SCUserContext); // CONST
@@ -239,7 +244,7 @@ const Feed = (inProps, ref) => {
239
244
 
240
245
  const theme = (0, _styles.useTheme)();
241
246
  const oneColLayout = (0, _material.useMediaQuery)(theme.breakpoints.down('md'));
242
- const getData = (0, _react.useCallback)(() => {
247
+ const getData = (0, _react.useMemo)(() => () => {
243
248
  const widgetSort = (w1, w2) => w1.position > w2.position ? 1 : -1;
244
249
 
245
250
  const widgetReducer = (value, w) => {
@@ -252,7 +257,7 @@ const Feed = (inProps, ref) => {
252
257
  left: _widgets.map(w => Object.assign({}, w, {
253
258
  position: w.position * (w.column === 'right' ? 5 : 1)
254
259
  })).sort(widgetSort).reduce(widgetReducer, [...feedData, ...(loading ? Array.from({
255
- length: 5
260
+ length: 3
256
261
  }).map(() => ({
257
262
  type: 'widget',
258
263
  component: ItemSkeleton,
@@ -263,7 +268,7 @@ const Feed = (inProps, ref) => {
263
268
  } else {
264
269
  return {
265
270
  left: _widgets.filter(w => w.column === 'left').sort(widgetSort).reduce(widgetReducer, [...feedData, ...(loading ? Array.from({
266
- length: 5
271
+ length: 3
267
272
  }).map(() => ({
268
273
  type: 'widget',
269
274
  component: ItemSkeleton,
@@ -283,14 +288,12 @@ const Feed = (inProps, ref) => {
283
288
  item: true,
284
289
  xs: 12,
285
290
  md: 7
286
- }, /*#__PURE__*/_react.default.createElement(_react.default.Suspense, {
287
- fallback: /*#__PURE__*/_react.default.createElement(ItemSkeleton, ItemSkeletonProps)
288
291
  }, /*#__PURE__*/_react.default.createElement(_reactInfiniteScrollComponent.default, {
289
292
  className: classes.left,
290
293
  dataLength: data.left.length,
291
294
  next: fetch,
292
295
  hasMore: Boolean(next),
293
- loader: false,
296
+ loader: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null),
294
297
  endMessage: /*#__PURE__*/_react.default.createElement(_Widget.default, {
295
298
  className: classes.end
296
299
  }, /*#__PURE__*/_react.default.createElement(_material.CardContent, null, endMessage)),
@@ -315,7 +318,7 @@ const Feed = (inProps, ref) => {
315
318
  sx: {
316
319
  width: '100%'
317
320
  }
318
- })))))), data.right.length > 0 && /*#__PURE__*/_react.default.createElement(_material.Hidden, {
321
+ }))))), data.right.length > 0 && /*#__PURE__*/_react.default.createElement(_material.Hidden, {
319
322
  smDown: true
320
323
  }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
321
324
  item: true,
@@ -401,106 +401,96 @@ function FeedObject(inProps) {
401
401
  */
402
402
 
403
403
 
404
- function handleRestore() {
404
+ const handleRestore = (0, _react.useCallback)(() => {
405
405
  setObj(prev => Object.assign({}, prev, {
406
406
  deleted: false
407
407
  }));
408
- }
408
+ }, [obj]);
409
409
  /**
410
410
  * Handle restore obj
411
411
  */
412
412
 
413
-
414
- function handleHide() {
413
+ const handleHide = (0, _react.useCallback)(() => {
415
414
  setObj(prev => Object.assign({}, prev, {
416
415
  collapsed: !prev.collapsed
417
416
  }));
418
- }
417
+ }, [obj]);
419
418
  /**
420
419
  * Handle delete obj
421
420
  */
422
421
 
423
-
424
- function handleDelete() {
422
+ const handleDelete = (0, _react.useCallback)(() => {
425
423
  setObj(prev => Object.assign({}, prev, {
426
424
  deleted: !prev.deleted
427
425
  }));
428
- }
426
+ }, [obj]);
429
427
  /**
430
428
  * Handle suspend notification obj
431
429
  */
432
430
 
433
-
434
- function handleSuspendNotification() {
431
+ const handleSuspendNotification = (0, _react.useCallback)(() => {
435
432
  setObj(prev => Object.assign({}, prev, {
436
433
  suspended: !prev.suspended
437
434
  }));
438
- }
435
+ }, [obj]);
439
436
  /**
440
437
  * Handle initial edit
441
438
  * Open composer
442
439
  */
443
440
 
444
-
445
- function handleToggleEdit() {
441
+ const handleToggleEdit = (0, _react.useCallback)(() => {
446
442
  setComposerOpen(prev => !prev);
447
- }
443
+ }, [composerOpen]);
448
444
  /**
449
445
  * handle edit success
450
446
  */
451
447
 
452
-
453
- function handleEditSuccess(data) {
448
+ const handleEditSuccess = (0, _react.useCallback)(data => {
454
449
  setObj(data);
455
450
  setComposerOpen(false);
456
- }
451
+ }, [obj, composerOpen]);
457
452
  /**
458
453
  * Expand activities if the user is logged
459
454
  */
460
455
 
461
-
462
- function handleExpandActivities() {
456
+ const handleExpandActivities = (0, _react.useCallback)(() => {
463
457
  if (scUserContext.user) {
464
458
  setExpandedActivities(prev => !prev);
465
459
  } else {
466
460
  scContext.settings.handleAnonymousAction();
467
461
  }
468
- }
462
+ }, [scUserContext.user]);
469
463
  /**
470
464
  * Handle follow obj
471
465
  */
472
466
 
473
-
474
- function handleFollow(isFollow) {
467
+ const handleFollow = (0, _react.useCallback)(isFollow => {
475
468
  setObj(prev => Object.assign({}, prev, {
476
469
  followed: isFollow
477
470
  }));
478
- }
471
+ }, [obj]);
479
472
  /**
480
473
  * Handle delete comment callback
481
474
  */
482
475
 
483
-
484
- function handleDeleteComment() {
476
+ const handleDeleteComment = (0, _react.useCallback)(() => {
485
477
  setObj(prev => Object.assign({}, prev, {
486
478
  comment_count: Math.max(prev.comment_count - 1, 0)
487
479
  }));
488
- }
480
+ }, [obj]);
489
481
  /**
490
482
  * Handle select activities
491
483
  */
492
484
 
493
-
494
- function handleSelectedActivities(type) {
485
+ const handleSelectedActivities = (0, _react.useCallback)(type => {
495
486
  setSelectedActivities(type);
496
487
  setComments([]);
497
- }
488
+ }, [obj]);
498
489
  /**
499
490
  * Perform reply
500
491
  * Comment of first level
501
492
  */
502
493
 
503
-
504
494
  const performReply = (0, _react.useMemo)(() => comment => {
505
495
  return _apiServices.http.request({
506
496
  url: _apiServices.Endpoints.NewComment.url({}),
@@ -775,7 +765,7 @@ function FeedObject(inProps) {
775
765
  className: classes.mediasSection
776
766
  }, /*#__PURE__*/_react.default.createElement(_MediasPreview.default, _extends({
777
767
  medias: obj.medias
778
- }, PollObjectProps))), /*#__PURE__*/_react.default.createElement(_material.Box, {
768
+ }, MediasPreviewProps))), /*#__PURE__*/_react.default.createElement(_material.Box, {
779
769
  className: classes.pollsSection
780
770
  }, obj['poll'] && /*#__PURE__*/_react.default.createElement(_Poll.default, _extends({
781
771
  feedObject: obj,
@@ -121,10 +121,7 @@ function PeopleSuggestion(inProps) {
121
121
  function handleOnFollowUser(user, follow) {
122
122
  setUsers(users.filter(u => u.id !== user.id));
123
123
  setTotal(prev => prev - 1);
124
-
125
- if (visiblePeople < limit && total > 1) {
126
- loadPeople(1);
127
- }
124
+ setHasMore(total - 1 > limit);
128
125
  }
129
126
  /**
130
127
  * Handles list change on user connection
@@ -134,10 +131,7 @@ function PeopleSuggestion(inProps) {
134
131
  function handleOnConnectUser(user, status) {
135
132
  setUsers(users.filter(u => u.id !== user.id));
136
133
  setTotal(prev => prev - 1);
137
-
138
- if (visiblePeople < limit && total > 1) {
139
- loadPeople(1);
140
- }
134
+ setHasMore(total - 1 > limit);
141
135
  }
142
136
  /**
143
137
  * Fetches user suggestion list
@@ -123,7 +123,6 @@ function UsersFollowed(inProps) {
123
123
  } = props; // STATE
124
124
 
125
125
  const [followed, setFollowed] = (0, _react.useState)([]);
126
- const [visibleUsers, setVisibleUsers] = (0, _react.useState)(limit);
127
126
  const [loading, setLoading] = (0, _react.useState)(true);
128
127
  const [hasMore, setHasMore] = (0, _react.useState)(false);
129
128
  const [total, setTotal] = (0, _react.useState)(0);
@@ -139,10 +138,7 @@ function UsersFollowed(inProps) {
139
138
  if (scUserContext.user['id'] === userId) {
140
139
  setFollowed(followed.filter(u => u.id !== user.id));
141
140
  setTotal(prev => prev - 1);
142
-
143
- if (visibleUsers < limit && total > 1) {
144
- loadUsers(1);
145
- }
141
+ setHasMore(total - 1 > limit);
146
142
  } else {
147
143
  const newUsers = [...followed];
148
144
  const index = newUsers.findIndex(u => u.id === user.id);
@@ -173,7 +169,7 @@ function UsersFollowed(inProps) {
173
169
  }).then(res => {
174
170
  const data = res.data;
175
171
  setFollowed([...followed, ...data.results]);
176
- setHasMore(data.count > visibleUsers);
172
+ setHasMore(data.count > limit);
177
173
  setNext(data['next']);
178
174
  setLoading(false);
179
175
  setTotal(data.count);
@@ -184,17 +180,6 @@ function UsersFollowed(inProps) {
184
180
  });
185
181
  }
186
182
  }
187
- /**
188
- * Loads more users when followed list changes
189
- */
190
-
191
-
192
- function loadUsers(n) {
193
- const newIndex = visibleUsers + n;
194
- const newHasMore = newIndex < followed.length - 1;
195
- setVisibleUsers(newIndex);
196
- setHasMore(newHasMore);
197
- }
198
183
  /**
199
184
  * On mount, fetches the list of users followed
200
185
  */
@@ -221,7 +206,7 @@ function UsersFollowed(inProps) {
221
206
  })}`), !total ? /*#__PURE__*/_react.default.createElement(_material.Typography, {
222
207
  className: classes.noResults,
223
208
  variant: "body2"
224
- }, `${intl.formatMessage(messages.noUsers)}`) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.default, null, followed.slice(0, visibleUsers).map(user => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
209
+ }, `${intl.formatMessage(messages.noUsers)}`) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.default, null, followed.slice(0, limit).map(user => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
225
210
  key: user.id
226
211
  }, /*#__PURE__*/_react.default.createElement(_User.default, _extends({
227
212
  elevation: 0,
@@ -78,13 +78,6 @@ function AutoPlayer(props) {
78
78
  onEnter: handleEnterViewport,
79
79
  onLeave: handleExitViewport
80
80
  }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactPlayer.default, _extends({
81
- config: {
82
- youtube: {
83
- playerVars: {
84
- rel: 0
85
- }
86
- }
87
- },
88
81
  loop: loop,
89
82
  controls: controls,
90
83
  stopOnUnmount: stopOnUnmount,
@@ -95,9 +88,19 @@ function AutoPlayer(props) {
95
88
  setPlayed(progress.playedSeconds);
96
89
  },
97
90
  config: {
91
+ youtube: {
92
+ embedOptions: {
93
+ host: 'https://www.youtube-nocookie.com'
94
+ },
95
+ playerVars: {
96
+ rel: 0
97
+ }
98
+ },
98
99
  vimeo: {
99
100
  playerOptions: {
100
- autopause: true
101
+ autopause: true,
102
+ dnt: true,
103
+ transparent: false
101
104
  },
102
105
  preload: true
103
106
  }
@@ -43,6 +43,11 @@ const Root = (0, _styles.styled)(_Dialog.default, {
43
43
  [theme.breakpoints.down(500)]: {
44
44
  minWidth: 300
45
45
  },
46
+ [theme.breakpoints.only('xs')]: {
47
+ '& .MuiDialogContent-root': {
48
+ padding: 0
49
+ }
50
+ },
46
51
  minWidth: 500
47
52
  }));
48
53
 
@@ -3,13 +3,9 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = DateTimeAgo;
5
5
 
6
- var _react = _interopRequireDefault(require("react"));
6
+ var _react = _interopRequireWildcard(require("react"));
7
7
 
8
- var _reactTimeago = _interopRequireDefault(require("react-timeago"));
9
-
10
- var _it = _interopRequireDefault(require("react-timeago/lib/language-strings/it"));
11
-
12
- var _buildFormatter = _interopRequireDefault(require("react-timeago/lib/formatters/buildFormatter"));
8
+ var _reactCore = require("@selfcommunity/react-core");
13
9
 
14
10
  var _styles = require("@mui/material/styles");
15
11
 
@@ -21,10 +17,16 @@ var _reactIntl = require("react-intl");
21
17
 
22
18
  var _classnames = _interopRequireDefault(require("classnames"));
23
19
 
24
- const _excluded = ["className", "live", "date", "showStartIcon"];
20
+ var _moment = _interopRequireDefault(require("moment"));
21
+
22
+ const _excluded = ["className", "date", "showStartIcon"];
25
23
 
26
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
25
 
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
28
30
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
31
 
30
32
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -50,18 +52,23 @@ const Root = (0, _styles.styled)(_material.Box, {
50
52
  lineHeight: 1.8
51
53
  }
52
54
  }));
53
- const formatter = (0, _buildFormatter.default)(_it.default);
54
55
 
55
56
  function DateTimeAgo(props) {
56
57
  // PROPS
57
58
  const {
58
59
  className,
59
- live = true,
60
60
  date = null,
61
61
  showStartIcon = true
62
62
  } = props,
63
- rest = _objectWithoutPropertiesLoose(props, _excluded); // INTL
63
+ rest = _objectWithoutPropertiesLoose(props, _excluded); // CONTEXT
64
+
64
65
 
66
+ const scContext = (0, _reactCore.useSCContext)();
67
+ (0, _react.useEffect)(() => {
68
+ if (_moment.default.locale() !== scContext.settings.locale.default) {
69
+ _moment.default.locale(scContext.settings.locale.default);
70
+ }
71
+ }, [scContext.settings.locale.default]); // INTL
65
72
 
66
73
  const intl = (0, _reactIntl.useIntl)();
67
74
  /**
@@ -84,11 +91,7 @@ function DateTimeAgo(props) {
84
91
  }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
85
92
  variant: 'body2',
86
93
  component: 'span'
87
- }, /*#__PURE__*/_react.default.createElement(_reactTimeago.default, {
88
- date: date,
89
- live: live,
90
- formatter: formatter
91
- }))));
94
+ }, (0, _moment.default)(date).fromNow())));
92
95
  }
93
96
 
94
97
  return null;
@@ -120,7 +120,8 @@ var _default = props => {
120
120
  height: 360,
121
121
  placeholder: /*#__PURE__*/_react.default.createElement(_CentralProgress.default, {
122
122
  size: 20
123
- })
123
+ }),
124
+ once: true
124
125
  }, /*#__PURE__*/_react.default.createElement(Root, null, adornment, medias.map((l, i) => {
125
126
  if (l.embed.metadata && l.embed.metadata.type === _Media.MEDIA_TYPE_VIDEO) {
126
127
  return /*#__PURE__*/_react.default.createElement(_AutoPlayer.default, {
@@ -43,7 +43,8 @@ var _default = ({
43
43
  height: 360,
44
44
  placeholder: /*#__PURE__*/_react.default.createElement(_CentralProgress.default, {
45
45
  size: 20
46
- })
46
+ }),
47
+ once: true
47
48
  }, /*#__PURE__*/_react.default.createElement(Root, null, _adornment, _medias.map(media => /*#__PURE__*/_react.default.createElement(_Box.default, {
48
49
  key: media.id,
49
50
  className: classes.sharePreview
@@ -42,13 +42,7 @@ var _default = props => {
42
42
  */
43
43
 
44
44
 
45
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, medias.length > 0 && /*#__PURE__*/_react.default.createElement(_reactLazyload.default, {
46
- height: 360,
47
- placeholder: /*#__PURE__*/_react.default.createElement(_CentralProgress.default, {
48
- size: 20
49
- }),
50
- once: true
51
- }, /*#__PURE__*/_react.default.createElement(Root, null, adornment, medias.map((v, i) => /*#__PURE__*/_react.default.createElement(_reactLazyload.default, {
45
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, medias.length > 0 && /*#__PURE__*/_react.default.createElement(Root, null, adornment, medias.map((v, i) => /*#__PURE__*/_react.default.createElement(_reactLazyload.default, {
52
46
  height: 360,
53
47
  placeholder: /*#__PURE__*/_react.default.createElement(_CentralProgress.default, {
54
48
  size: 20
@@ -59,7 +53,7 @@ var _default = props => {
59
53
  url: v.url,
60
54
  width: '100%',
61
55
  onVideoWatch: () => handleVideoClick(v)
62
- }))))));
56
+ })))));
63
57
  };
64
58
 
65
59
  exports.default = _default;
@@ -85,7 +85,7 @@ const Root = (0, _styles.styled)(_Widget.default, {
85
85
  height: 30
86
86
  }
87
87
  }));
88
- const PREFERENCES = [_reactCore.SCPreferences.LOGO_NAVBAR_LOGO, _reactCore.SCPreferences.TEXT_APPLICATION_NAME];
88
+ const PREFERENCES = [_reactCore.SCPreferences.LOGO_NAVBAR_LOGO_MOBILE, _reactCore.SCPreferences.TEXT_APPLICATION_NAME];
89
89
 
90
90
  function Message(props) {
91
91
  // PROPS
@@ -181,7 +181,7 @@ function Message(props) {
181
181
  className: classes.header,
182
182
  avatar: /*#__PURE__*/_react.default.createElement(_material.Avatar, {
183
183
  alt: preferences[_reactCore.SCPreferences.TEXT_APPLICATION_NAME],
184
- src: preferences[_reactCore.SCPreferences.LOGO_NAVBAR_LOGO]
184
+ src: preferences[_reactCore.SCPreferences.LOGO_NAVBAR_LOGO_MOBILE_MOBILE]
185
185
  }),
186
186
  action: template === _types.SCBroadcastMessageTemplateType.DETAIL && /*#__PURE__*/_react.default.createElement(_material.IconButton, {
187
187
  "aria-label": "close",
@@ -111,7 +111,6 @@ function CategoriesFollowed(inProps) {
111
111
  } = props; // STATE
112
112
 
113
113
  const [categories, setCategories] = (0, _react.useState)([]);
114
- const [visibleCategories, setVisibleCategories] = (0, _react.useState)(limit);
115
114
  const [loading, setLoading] = (0, _react.useState)(true);
116
115
  const [hasMore, setHasMore] = (0, _react.useState)(false);
117
116
  const [total, setTotal] = (0, _react.useState)(0);
@@ -129,17 +128,12 @@ function CategoriesFollowed(inProps) {
129
128
  if (scUserContext.user['id'] === userId) {
130
129
  setCategories(categories.filter(c => c.id !== category.id));
131
130
  setTotal(prev => prev - 1);
132
-
133
- if (visibleCategories < limit && total > 1) {
134
- loadCategories(1);
135
- }
131
+ setHasMore(total - 1 > limit);
136
132
  } else {
137
133
  const newCategories = [...categories];
138
134
  const index = newCategories.findIndex(u => u.id === category.id);
139
135
 
140
136
  if (index !== -1) {
141
- console.log(category.followed);
142
-
143
137
  if (category.followed) {
144
138
  newCategories[index].followers_counter = category.followers_counter - 1;
145
139
  newCategories[index].followed = !category.followed;
@@ -167,7 +161,7 @@ function CategoriesFollowed(inProps) {
167
161
  setCategories([...categories, ...data]);
168
162
  setTotal(data.length);
169
163
  setNext(data['next']);
170
- setHasMore(data.length > visibleCategories);
164
+ setHasMore(data.length > limit);
171
165
  setLoading(false);
172
166
  }).catch(error => {
173
167
  setLoading(false);
@@ -176,17 +170,6 @@ function CategoriesFollowed(inProps) {
176
170
  });
177
171
  }
178
172
  }
179
- /**
180
- * Loads more categories when followed list changes
181
- */
182
-
183
-
184
- function loadCategories(n) {
185
- const newIndex = visibleCategories + n;
186
- const newHasMore = newIndex < categories.length - 1;
187
- setVisibleCategories(newIndex);
188
- setHasMore(newHasMore);
189
- }
190
173
  /**
191
174
  * On mount, fetches the list of categories followed
192
175
  */
@@ -209,7 +192,7 @@ function CategoriesFollowed(inProps) {
209
192
  })}`), !total ? /*#__PURE__*/_react.default.createElement(_material.Typography, {
210
193
  className: classes.noResults,
211
194
  variant: "body2"
212
- }, `${intl.formatMessage(messages.noCategories)}`) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.default, null, categories.slice(0, visibleCategories).map(category => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
195
+ }, `${intl.formatMessage(messages.noCategories)}`) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_List.default, null, categories.slice(0, limit).map(category => /*#__PURE__*/_react.default.createElement(_material.ListItem, {
213
196
  key: category.id
214
197
  }, /*#__PURE__*/_react.default.createElement(_Category.default, _extends({
215
198
  elevation: 0,
@@ -110,10 +110,7 @@ function CategoriesSuggestion(inProps) {
110
110
  function handleOnFollowCategory(category, follow) {
111
111
  setCategories(categories.filter(c => c.id !== category.id));
112
112
  setTotal(prev => prev - 1);
113
-
114
- if (visibleCategories < limit && total > 1) {
115
- loadCategories(1);
116
- }
113
+ setHasMore(total - 1 > limit);
117
114
  }
118
115
  /**
119
116
  * Fetches categories suggestion list