@selfcommunity/react-ui 0.7.9-alpha.30 → 0.7.9-alpha.32

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.
@@ -89,6 +89,7 @@ const Root = (0, styles_1.styled)(material_1.Box, {
89
89
  * @param inProps
90
90
  */
91
91
  function CommentObject(inProps) {
92
+ var _a;
92
93
  // PROPS
93
94
  const props = (0, system_1.useThemeProps)({
94
95
  props: inProps,
@@ -98,6 +99,7 @@ function CommentObject(inProps) {
98
99
  // CONTEXT
99
100
  const scContext = (0, react_core_1.useSCContext)();
100
101
  const scUserContext = (0, react_1.useContext)(react_core_1.SCUserContext);
102
+ const scGroupsManager = scUserContext.managers.groups;
101
103
  const scRoutingContext = (0, react_core_1.useSCRouting)();
102
104
  const { enqueueSnackbar } = (0, notistack_1.useSnackbar)();
103
105
  // STATE
@@ -115,11 +117,21 @@ function CommentObject(inProps) {
115
117
  cacheStrategy
116
118
  });
117
119
  const [openAlert, setOpenAlert] = (0, react_1.useState)(false);
120
+ const [status, setStatus] = (0, react_1.useState)(null);
118
121
  // HANDLERS
119
122
  const handleVoteSuccess = (contribution) => {
120
123
  setObj(contribution);
121
124
  onVote && onVote(contribution);
122
125
  };
126
+ /**
127
+ * If the obj has a group, checks the subscription status for the authenticated user
128
+ */
129
+ (0, react_1.useEffect)(() => {
130
+ var _a;
131
+ if (((_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.id) && (feedObject === null || feedObject === void 0 ? void 0 : feedObject.group)) {
132
+ setStatus(scGroupsManager.subscriptionStatus(feedObject === null || feedObject === void 0 ? void 0 : feedObject.group));
133
+ }
134
+ }, [(_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.id, scGroupsManager.subscriptionStatus, feedObject === null || feedObject === void 0 ? void 0 : feedObject.group]);
123
135
  /**
124
136
  * Update state object
125
137
  * @param newObj
@@ -154,6 +166,12 @@ function CommentObject(inProps) {
154
166
  if (!scUserContext.user) {
155
167
  scContext.settings.handleAnonymousAction();
156
168
  }
169
+ else if ((feedObject === null || feedObject === void 0 ? void 0 : feedObject.group) && status !== types_1.SCGroupSubscriptionStatusType.SUBSCRIBED) {
170
+ enqueueSnackbar(react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.common.group.actions.unsubscribed", defaultMessage: "ui.common.group.actions.unsubscribed" }), {
171
+ variant: 'warning',
172
+ autoHideDuration: 3000
173
+ });
174
+ }
157
175
  else {
158
176
  setReplyComment(comment);
159
177
  onOpenReply && onOpenReply(comment);
@@ -138,7 +138,9 @@ function GroupHeader(inProps) {
138
138
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.groupHeader.visibility.visible", defaultMessage: "ui.groupHeader.visibility.visible" }))) : (react_1.default.createElement(material_1.Typography, { className: classes.visibilityItem },
139
139
  react_1.default.createElement(material_1.Icon, null, "visibility_off"),
140
140
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.groupHeader.visibility.hidden", defaultMessage: "ui.groupHeader.visibility.hidden" })))),
141
- react_1.default.createElement(react_1.default.Fragment, null, ((scGroup && scGroup.privacy === types_1.SCGroupPrivacyType.PUBLIC) || isGroupAdmin) && (react_1.default.createElement(material_1.Box, { className: classes.members },
141
+ react_1.default.createElement(react_1.default.Fragment, null, ((scGroup && scGroup.privacy === types_1.SCGroupPrivacyType.PUBLIC) ||
142
+ scGroup.subscription_status === types_1.SCGroupSubscriptionStatusType.SUBSCRIBED ||
143
+ isGroupAdmin) && (react_1.default.createElement(material_1.Box, { className: classes.members },
142
144
  react_1.default.createElement(material_1.Typography, { className: classes.membersCounter, component: "div" },
143
145
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.groupHeader.members", defaultMessage: "ui.groupHeader.members", values: { total: scGroup.subscribers_counter } })),
144
146
  react_1.default.createElement(GroupMembersButton_1.default, Object.assign({ groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, group: scGroup, autoHide: !isGroupAdmin }, GroupMembersButtonProps))))),
@@ -72,7 +72,11 @@ function GroupMembersButton(inProps) {
72
72
  const { scGroup } = (0, react_core_1.useSCFetchGroup)({ id: groupId, group });
73
73
  // FETCH FIRST FOLLOWERS
74
74
  (0, use_deep_compare_effect_1.useDeepCompareEffectNoCheck)(() => {
75
- if (!scGroup || (scGroup && scGroup.privacy !== types_1.SCGroupPrivacyType.PUBLIC && autoHide)) {
75
+ if (!scGroup ||
76
+ (scGroup &&
77
+ scGroup.privacy !== types_1.SCGroupPrivacyType.PUBLIC &&
78
+ scGroup.subscription_status !== types_1.SCGroupSubscriptionStatusType.SUBSCRIBED &&
79
+ autoHide)) {
76
80
  return;
77
81
  }
78
82
  if (members.length === 0) {
@@ -4,6 +4,7 @@ import { CacheStrategies } from '@selfcommunity/utils';
4
4
  import { BaseDialogProps } from '../../shared/BaseDialog';
5
5
  import { VirtualScrollerItemProps } from '../../types/virtualScroller';
6
6
  import { UserProps } from '../User';
7
+ import { GroupSubscribeButtonProps } from '../GroupSubscribeButton';
7
8
  export interface GroupRequestsWidgetProps extends VirtualScrollerItemProps, WidgetProps {
8
9
  /**
9
10
  * Group Object
@@ -35,6 +36,16 @@ export interface GroupRequestsWidgetProps extends VirtualScrollerItemProps, Widg
35
36
  * @default {}
36
37
  */
37
38
  DialogProps?: BaseDialogProps;
39
+ /**
40
+ * Props to spread to group subscribe button component
41
+ * @default {}
42
+ */
43
+ GroupSubscribeButtonProps?: GroupSubscribeButtonProps;
44
+ /**
45
+ * onSubscribeAction callback
46
+ * @param user
47
+ */
48
+ onSubscribeActon?: (userId: number | string) => any;
38
49
  /**
39
50
  * Other props
40
51
  */
@@ -75,7 +75,7 @@ function GroupRequestsWidget(inProps) {
75
75
  props: inProps,
76
76
  name: constants_1.PREFIX
77
77
  });
78
- const { groupId, group, limit = 5, className, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange, UserProps = {}, DialogProps = {} } = props, rest = tslib_1.__rest(props, ["groupId", "group", "limit", "className", "cacheStrategy", "onHeightChange", "onStateChange", "UserProps", "DialogProps"]);
78
+ const { groupId, group, limit = 5, className, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange, UserProps = {}, DialogProps = {}, GroupSubscribeButtonProps = {}, onSubscribeActon } = props, rest = tslib_1.__rest(props, ["groupId", "group", "limit", "className", "cacheStrategy", "onHeightChange", "onStateChange", "UserProps", "DialogProps", "GroupSubscribeButtonProps", "onSubscribeActon"]);
79
79
  // STATE
80
80
  const [state, dispatch] = (0, react_1.useReducer)(widget_1.dataWidgetReducer, {
81
81
  isLoadingNext: false,
@@ -171,14 +171,15 @@ function GroupRequestsWidget(inProps) {
171
171
  const handleToggleDialogOpen = () => {
172
172
  setOpenDialog((prev) => !prev);
173
173
  };
174
- const handleSubscribeAction = (0, react_1.useMemo)(() => (userId) => {
174
+ const handleSubscribeAction = (0, react_1.useMemo)(() => (user) => {
175
175
  const newRequests = [...state.results];
176
- const _updated = newRequests.filter((u) => u.id !== userId);
176
+ const _updated = newRequests.filter((u) => u.id !== user.id);
177
177
  dispatch({
178
178
  type: widget_1.actionWidgetTypes.SET_RESULTS,
179
179
  payload: { results: newRequests.length > 1 ? _updated : [] }
180
180
  });
181
- }, [dispatch, state.count, state.results]);
181
+ onSubscribeActon && onSubscribeActon(user);
182
+ }, [dispatch, state.count, state.results, onSubscribeActon]);
182
183
  // RENDER
183
184
  if ((!state.count && state.initialized) || !contentAvailability || !scGroup || !state.count || !state.results.length || !isGroupAdmin) {
184
185
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
@@ -191,14 +192,14 @@ function GroupRequestsWidget(inProps) {
191
192
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.groupRequestsWidget.title", defaultMessage: "ui.groupRequestsWidget.title" })),
192
193
  react_1.default.createElement(react_1.default.Fragment, null,
193
194
  react_1.default.createElement(List_1.default, null, state.results.slice(0, state.visibleItems).map((user) => (react_1.default.createElement(material_1.ListItem, { key: user.id },
194
- react_1.default.createElement(User_1.default, { elevation: 0, actions: react_1.default.createElement(GroupSubscribeButton_1.default, { group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user.id) }), user: user, userId: user.id }))))),
195
+ react_1.default.createElement(User_1.default, { elevation: 0, actions: react_1.default.createElement(GroupSubscribeButton_1.default, Object.assign({ group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user) }, GroupSubscribeButtonProps)), user: user, userId: user.id }))))),
195
196
  state.count > state.visibleItems && (react_1.default.createElement(material_1.Button, { className: classes.showMore, onClick: handleToggleDialogOpen },
196
197
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.groupRequestsWidget.button.showMore", defaultMessage: "ui.groupRequestsWidget.button.showMore" })))),
197
198
  openDialog && (react_1.default.createElement(DialogRoot, Object.assign({ className: classes.dialogRoot, title: react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: "ui.groupRequestsWidget.dialogTitle", id: "ui.groupRequestsWidget.dialogTitle", values: { total: scGroup.subscribers_counter } }), onClose: handleToggleDialogOpen, open: openDialog }, DialogProps),
198
199
  react_1.default.createElement(InfiniteScroll_1.default, { dataLength: state.results.length, next: handleNext, hasMoreNext: Boolean(state.next), loaderNext: react_1.default.createElement(User_1.UserSkeleton, Object.assign({ elevation: 0 }, UserProps)), height: isMobile ? '100%' : 400, endMessage: react_1.default.createElement(material_1.Typography, { className: classes.endMessage },
199
200
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.groupRequestsWidget.noMoreResults", defaultMessage: "ui.groupRequestsWidget.noMoreResults" })) },
200
201
  react_1.default.createElement(List_1.default, null, state.results.map((user) => (react_1.default.createElement(material_1.ListItem, { key: user.id },
201
- react_1.default.createElement(User_1.default, { elevation: 0, actions: react_1.default.createElement(GroupSubscribeButton_1.default, { group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user.id) }), user: user, userId: user.id }))))))))));
202
+ react_1.default.createElement(User_1.default, { elevation: 0, actions: react_1.default.createElement(GroupSubscribeButton_1.default, Object.assign({ group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user) }, GroupSubscribeButtonProps)), user: user, userId: user.id }))))))))));
202
203
  return (react_1.default.createElement(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, rest), content));
203
204
  }
204
205
  exports.default = GroupRequestsWidget;
@@ -1,5 +1,5 @@
1
1
  import { __rest } from "tslib";
2
- import React, { useContext, useState } from 'react';
2
+ import React, { useContext, useEffect, useState } from 'react';
3
3
  import { styled } from '@mui/material/styles';
4
4
  import Widget from '../Widget';
5
5
  import { FormattedMessage } from 'react-intl';
@@ -17,7 +17,7 @@ import { getContributionHtml, getContributionType, getRouteData } from '../../ut
17
17
  import { useSnackbar } from 'notistack';
18
18
  import { useThemeProps } from '@mui/system';
19
19
  import BaseItem from '../../shared/BaseItem';
20
- import { SCContributionType } from '@selfcommunity/types';
20
+ import { SCContributionType, SCGroupSubscriptionStatusType } from '@selfcommunity/types';
21
21
  import { Endpoints, http } from '@selfcommunity/api-services';
22
22
  import { CacheStrategies, Logger, LRUCache } from '@selfcommunity/utils';
23
23
  import { Link, SCCache, SCRoutes, SCUserContext, UserUtils, useSCContext, useSCFetchCommentObject, useSCFetchCommentObjects, useSCRouting } from '@selfcommunity/react-core';
@@ -87,6 +87,7 @@ const Root = styled(Box, {
87
87
  * @param inProps
88
88
  */
89
89
  export default function CommentObject(inProps) {
90
+ var _a;
90
91
  // PROPS
91
92
  const props = useThemeProps({
92
93
  props: inProps,
@@ -96,6 +97,7 @@ export default function CommentObject(inProps) {
96
97
  // CONTEXT
97
98
  const scContext = useSCContext();
98
99
  const scUserContext = useContext(SCUserContext);
100
+ const scGroupsManager = scUserContext.managers.groups;
99
101
  const scRoutingContext = useSCRouting();
100
102
  const { enqueueSnackbar } = useSnackbar();
101
103
  // STATE
@@ -113,11 +115,21 @@ export default function CommentObject(inProps) {
113
115
  cacheStrategy
114
116
  });
115
117
  const [openAlert, setOpenAlert] = useState(false);
118
+ const [status, setStatus] = useState(null);
116
119
  // HANDLERS
117
120
  const handleVoteSuccess = (contribution) => {
118
121
  setObj(contribution);
119
122
  onVote && onVote(contribution);
120
123
  };
124
+ /**
125
+ * If the obj has a group, checks the subscription status for the authenticated user
126
+ */
127
+ useEffect(() => {
128
+ var _a;
129
+ if (((_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.id) && (feedObject === null || feedObject === void 0 ? void 0 : feedObject.group)) {
130
+ setStatus(scGroupsManager.subscriptionStatus(feedObject === null || feedObject === void 0 ? void 0 : feedObject.group));
131
+ }
132
+ }, [(_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.id, scGroupsManager.subscriptionStatus, feedObject === null || feedObject === void 0 ? void 0 : feedObject.group]);
121
133
  /**
122
134
  * Update state object
123
135
  * @param newObj
@@ -152,6 +164,12 @@ export default function CommentObject(inProps) {
152
164
  if (!scUserContext.user) {
153
165
  scContext.settings.handleAnonymousAction();
154
166
  }
167
+ else if ((feedObject === null || feedObject === void 0 ? void 0 : feedObject.group) && status !== SCGroupSubscriptionStatusType.SUBSCRIBED) {
168
+ enqueueSnackbar(React.createElement(FormattedMessage, { id: "ui.common.group.actions.unsubscribed", defaultMessage: "ui.common.group.actions.unsubscribed" }), {
169
+ variant: 'warning',
170
+ autoHideDuration: 3000
171
+ });
172
+ }
155
173
  else {
156
174
  setReplyComment(comment);
157
175
  onOpenReply && onOpenReply(comment);
@@ -2,7 +2,7 @@ import { __rest } from "tslib";
2
2
  import React, { useMemo } from 'react';
3
3
  import { styled } from '@mui/material/styles';
4
4
  import { Avatar, Box, Icon, Paper, Typography } from '@mui/material';
5
- import { SCGroupPrivacyType } from '@selfcommunity/types';
5
+ import { SCGroupPrivacyType, SCGroupSubscriptionStatusType } from '@selfcommunity/types';
6
6
  import { SCPreferences, useSCFetchGroup, useSCPreferences, useSCUser } from '@selfcommunity/react-core';
7
7
  import GroupHeaderSkeleton from './Skeleton';
8
8
  import classNames from 'classnames';
@@ -136,7 +136,9 @@ export default function GroupHeader(inProps) {
136
136
  React.createElement(FormattedMessage, { id: "ui.groupHeader.visibility.visible", defaultMessage: "ui.groupHeader.visibility.visible" }))) : (React.createElement(Typography, { className: classes.visibilityItem },
137
137
  React.createElement(Icon, null, "visibility_off"),
138
138
  React.createElement(FormattedMessage, { id: "ui.groupHeader.visibility.hidden", defaultMessage: "ui.groupHeader.visibility.hidden" })))),
139
- React.createElement(React.Fragment, null, ((scGroup && scGroup.privacy === SCGroupPrivacyType.PUBLIC) || isGroupAdmin) && (React.createElement(Box, { className: classes.members },
139
+ React.createElement(React.Fragment, null, ((scGroup && scGroup.privacy === SCGroupPrivacyType.PUBLIC) ||
140
+ scGroup.subscription_status === SCGroupSubscriptionStatusType.SUBSCRIBED ||
141
+ isGroupAdmin) && (React.createElement(Box, { className: classes.members },
140
142
  React.createElement(Typography, { className: classes.membersCounter, component: "div" },
141
143
  React.createElement(FormattedMessage, { id: "ui.groupHeader.members", defaultMessage: "ui.groupHeader.members", values: { total: scGroup.subscribers_counter } })),
142
144
  React.createElement(GroupMembersButton, Object.assign({ groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, group: scGroup, autoHide: !isGroupAdmin }, GroupMembersButtonProps))))),
@@ -8,7 +8,7 @@ import InfiniteScroll from '../../shared/InfiniteScroll';
8
8
  import User, { UserSkeleton } from '../User';
9
9
  import { Endpoints, GroupService, http } from '@selfcommunity/api-services';
10
10
  import { useSCFetchGroup } from '@selfcommunity/react-core';
11
- import { SCGroupPrivacyType } from '@selfcommunity/types';
11
+ import { SCGroupPrivacyType, SCGroupSubscriptionStatusType } from '@selfcommunity/types';
12
12
  import AvatarGroupSkeleton from '../Skeleton/AvatarGroupSkeleton';
13
13
  import classNames from 'classnames';
14
14
  import { useThemeProps } from '@mui/system';
@@ -70,7 +70,11 @@ export default function GroupMembersButton(inProps) {
70
70
  const { scGroup } = useSCFetchGroup({ id: groupId, group });
71
71
  // FETCH FIRST FOLLOWERS
72
72
  useDeepCompareEffectNoCheck(() => {
73
- if (!scGroup || (scGroup && scGroup.privacy !== SCGroupPrivacyType.PUBLIC && autoHide)) {
73
+ if (!scGroup ||
74
+ (scGroup &&
75
+ scGroup.privacy !== SCGroupPrivacyType.PUBLIC &&
76
+ scGroup.subscription_status !== SCGroupSubscriptionStatusType.SUBSCRIBED &&
77
+ autoHide)) {
74
78
  return;
75
79
  }
76
80
  if (members.length === 0) {
@@ -4,6 +4,7 @@ import { CacheStrategies } from '@selfcommunity/utils';
4
4
  import { BaseDialogProps } from '../../shared/BaseDialog';
5
5
  import { VirtualScrollerItemProps } from '../../types/virtualScroller';
6
6
  import { UserProps } from '../User';
7
+ import { GroupSubscribeButtonProps } from '../GroupSubscribeButton';
7
8
  export interface GroupRequestsWidgetProps extends VirtualScrollerItemProps, WidgetProps {
8
9
  /**
9
10
  * Group Object
@@ -35,6 +36,16 @@ export interface GroupRequestsWidgetProps extends VirtualScrollerItemProps, Widg
35
36
  * @default {}
36
37
  */
37
38
  DialogProps?: BaseDialogProps;
39
+ /**
40
+ * Props to spread to group subscribe button component
41
+ * @default {}
42
+ */
43
+ GroupSubscribeButtonProps?: GroupSubscribeButtonProps;
44
+ /**
45
+ * onSubscribeAction callback
46
+ * @param user
47
+ */
48
+ onSubscribeActon?: (userId: number | string) => any;
38
49
  /**
39
50
  * Other props
40
51
  */
@@ -73,7 +73,7 @@ export default function GroupRequestsWidget(inProps) {
73
73
  props: inProps,
74
74
  name: PREFIX
75
75
  });
76
- const { groupId, group, limit = 5, className, cacheStrategy = CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange, UserProps = {}, DialogProps = {} } = props, rest = __rest(props, ["groupId", "group", "limit", "className", "cacheStrategy", "onHeightChange", "onStateChange", "UserProps", "DialogProps"]);
76
+ const { groupId, group, limit = 5, className, cacheStrategy = CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange, UserProps = {}, DialogProps = {}, GroupSubscribeButtonProps = {}, onSubscribeActon } = props, rest = __rest(props, ["groupId", "group", "limit", "className", "cacheStrategy", "onHeightChange", "onStateChange", "UserProps", "DialogProps", "GroupSubscribeButtonProps", "onSubscribeActon"]);
77
77
  // STATE
78
78
  const [state, dispatch] = useReducer(dataWidgetReducer, {
79
79
  isLoadingNext: false,
@@ -169,14 +169,15 @@ export default function GroupRequestsWidget(inProps) {
169
169
  const handleToggleDialogOpen = () => {
170
170
  setOpenDialog((prev) => !prev);
171
171
  };
172
- const handleSubscribeAction = useMemo(() => (userId) => {
172
+ const handleSubscribeAction = useMemo(() => (user) => {
173
173
  const newRequests = [...state.results];
174
- const _updated = newRequests.filter((u) => u.id !== userId);
174
+ const _updated = newRequests.filter((u) => u.id !== user.id);
175
175
  dispatch({
176
176
  type: actionWidgetTypes.SET_RESULTS,
177
177
  payload: { results: newRequests.length > 1 ? _updated : [] }
178
178
  });
179
- }, [dispatch, state.count, state.results]);
179
+ onSubscribeActon && onSubscribeActon(user);
180
+ }, [dispatch, state.count, state.results, onSubscribeActon]);
180
181
  // RENDER
181
182
  if ((!state.count && state.initialized) || !contentAvailability || !scGroup || !state.count || !state.results.length || !isGroupAdmin) {
182
183
  return React.createElement(HiddenPlaceholder, null);
@@ -189,13 +190,13 @@ export default function GroupRequestsWidget(inProps) {
189
190
  React.createElement(FormattedMessage, { id: "ui.groupRequestsWidget.title", defaultMessage: "ui.groupRequestsWidget.title" })),
190
191
  React.createElement(React.Fragment, null,
191
192
  React.createElement(List, null, state.results.slice(0, state.visibleItems).map((user) => (React.createElement(ListItem, { key: user.id },
192
- React.createElement(User, { elevation: 0, actions: React.createElement(GroupSubscribeButton, { group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user.id) }), user: user, userId: user.id }))))),
193
+ React.createElement(User, { elevation: 0, actions: React.createElement(GroupSubscribeButton, Object.assign({ group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user) }, GroupSubscribeButtonProps)), user: user, userId: user.id }))))),
193
194
  state.count > state.visibleItems && (React.createElement(Button, { className: classes.showMore, onClick: handleToggleDialogOpen },
194
195
  React.createElement(FormattedMessage, { id: "ui.groupRequestsWidget.button.showMore", defaultMessage: "ui.groupRequestsWidget.button.showMore" })))),
195
196
  openDialog && (React.createElement(DialogRoot, Object.assign({ className: classes.dialogRoot, title: React.createElement(FormattedMessage, { defaultMessage: "ui.groupRequestsWidget.dialogTitle", id: "ui.groupRequestsWidget.dialogTitle", values: { total: scGroup.subscribers_counter } }), onClose: handleToggleDialogOpen, open: openDialog }, DialogProps),
196
197
  React.createElement(InfiniteScroll, { dataLength: state.results.length, next: handleNext, hasMoreNext: Boolean(state.next), loaderNext: React.createElement(UserSkeleton, Object.assign({ elevation: 0 }, UserProps)), height: isMobile ? '100%' : 400, endMessage: React.createElement(Typography, { className: classes.endMessage },
197
198
  React.createElement(FormattedMessage, { id: "ui.groupRequestsWidget.noMoreResults", defaultMessage: "ui.groupRequestsWidget.noMoreResults" })) },
198
199
  React.createElement(List, null, state.results.map((user) => (React.createElement(ListItem, { key: user.id },
199
- React.createElement(User, { elevation: 0, actions: React.createElement(GroupSubscribeButton, { group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user.id) }), user: user, userId: user.id }))))))))));
200
+ React.createElement(User, { elevation: 0, actions: React.createElement(GroupSubscribeButton, Object.assign({ group: scGroup, groupId: scGroup === null || scGroup === void 0 ? void 0 : scGroup.id, user: user, onSubscribe: () => handleSubscribeAction(user) }, GroupSubscribeButtonProps)), user: user, userId: user.id }))))))))));
200
201
  return (React.createElement(Root, Object.assign({ className: classNames(classes.root, className) }, rest), content));
201
202
  }