@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.
- package/lib/cjs/components/BroadcastMessages/Message.js +2 -2
- package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js +3 -20
- package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js +1 -4
- package/lib/cjs/components/CommentObject/CommentObject.js +4 -1
- package/lib/cjs/components/Feed/Feed.js +11 -8
- package/lib/cjs/components/FeedObject/FeedObject.js +21 -31
- package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js +2 -8
- package/lib/cjs/components/UsersFollowed/UsersFollowed.js +3 -18
- package/lib/cjs/shared/AutoPlayer/index.js +11 -8
- package/lib/cjs/shared/BaseDialog/BaseDialog.js +5 -0
- package/lib/cjs/shared/DateTimeAgo/index.js +18 -15
- package/lib/cjs/shared/Media/Link/PreviewComponent.js +2 -1
- package/lib/cjs/shared/Media/Share/PreviewComponent.js +2 -1
- package/lib/cjs/shared/Media/Video/PreviewComponent.js +2 -8
- package/lib/esm/components/BroadcastMessages/Message.js +2 -2
- package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js +3 -20
- package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js +1 -4
- package/lib/esm/components/CommentObject/CommentObject.js +4 -1
- package/lib/esm/components/Feed/Feed.js +11 -8
- package/lib/esm/components/FeedObject/FeedObject.js +21 -31
- package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js +2 -8
- package/lib/esm/components/UsersFollowed/UsersFollowed.js +3 -18
- package/lib/esm/react-ui/src/components/BroadcastMessages/Message.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/CommentObject/CommentObject.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/Feed/Feed.d.ts +5 -0
- package/lib/esm/react-ui/src/components/Feed/Feed.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/FeedObject/FeedObject.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
- package/lib/esm/react-ui/src/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
- package/lib/esm/react-ui/src/shared/AutoPlayer/index.d.ts.map +1 -1
- package/lib/esm/react-ui/src/shared/BaseDialog/BaseDialog.d.ts.map +1 -1
- package/lib/esm/react-ui/src/shared/DateTimeAgo/index.d.ts.map +1 -1
- package/lib/esm/react-ui/src/shared/Media/Video/PreviewComponent.d.ts.map +1 -1
- package/lib/esm/shared/AutoPlayer/index.js +11 -8
- package/lib/esm/shared/BaseDialog/BaseDialog.js +5 -0
- package/lib/esm/shared/DateTimeAgo/index.js +18 -15
- package/lib/esm/shared/Media/Link/PreviewComponent.js +2 -1
- package/lib/esm/shared/Media/Share/PreviewComponent.js +2 -1
- package/lib/esm/shared/Media/Video/PreviewComponent.js +2 -8
- package/lib/umd/react-ui.js +21 -21
- package/lib/umd/react-ui.js.LICENSE.txt +5 -1
- package/lib/umd/react-ui.js.map +1 -1
- 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.
|
|
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.
|
|
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 >
|
|
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,
|
|
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:
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
})))))
|
|
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
|
-
|
|
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
|
-
},
|
|
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 >
|
|
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,
|
|
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
|
}
|
|
@@ -3,13 +3,9 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = DateTimeAgo;
|
|
5
5
|
|
|
6
|
-
var _react =
|
|
6
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
7
7
|
|
|
8
|
-
var
|
|
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
|
-
|
|
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); //
|
|
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
|
-
},
|
|
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.
|
|
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.
|
|
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 >
|
|
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,
|
|
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
|