@selfcommunity/react-ui 0.10.4-alpha.11 → 0.10.4-alpha.13
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/EventForm/EventForm.js +24 -7
- package/lib/cjs/components/EventMembersWidget/EventMembersWidget.js +7 -7
- package/lib/cjs/components/EventMembersWidget/TabContentComponent.js +11 -6
- package/lib/esm/components/EventForm/EventForm.js +25 -8
- package/lib/esm/components/EventMembersWidget/EventMembersWidget.js +7 -7
- package/lib/esm/components/EventMembersWidget/TabContentComponent.js +11 -6
- package/lib/umd/react-ui.js +1 -1
- package/package.json +4 -4
|
@@ -76,7 +76,8 @@ const classes = {
|
|
|
76
76
|
actions: `${constants_1.PREFIX}-actions`,
|
|
77
77
|
privacySection: `${constants_1.PREFIX}-privacy-section`,
|
|
78
78
|
privacySectionInfo: `${constants_1.PREFIX}-privacy-section-info`,
|
|
79
|
-
error: `${constants_1.PREFIX}-error
|
|
79
|
+
error: `${constants_1.PREFIX}-error`,
|
|
80
|
+
genericError: `${constants_1.PREFIX}-generic-error`
|
|
80
81
|
};
|
|
81
82
|
const Root = (0, styles_1.styled)(material_1.Box, {
|
|
82
83
|
name: constants_1.PREFIX,
|
|
@@ -148,6 +149,7 @@ function EventForm(inProps) {
|
|
|
148
149
|
// STATE
|
|
149
150
|
const [field, setField] = (0, react_1.useState)(initialFieldState);
|
|
150
151
|
const [error, setError] = (0, react_1.useState)({});
|
|
152
|
+
const [genericError, setGenericError] = (0, react_1.useState)(null);
|
|
151
153
|
// PREFERENCES
|
|
152
154
|
const scPreferences = (0, react_core_1.useSCPreferences)();
|
|
153
155
|
const privateEnabled = (0, react_1.useMemo)(() => scPreferences.preferences[react_core_1.SCPreferences.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED].value, [scPreferences.preferences]);
|
|
@@ -168,6 +170,7 @@ function EventForm(inProps) {
|
|
|
168
170
|
delete error.imageOriginalError;
|
|
169
171
|
setError(error);
|
|
170
172
|
}
|
|
173
|
+
setGenericError(null);
|
|
171
174
|
}, [error]);
|
|
172
175
|
/**
|
|
173
176
|
* Notify when a group info changed
|
|
@@ -185,9 +188,11 @@ function EventForm(inProps) {
|
|
|
185
188
|
}, [event]);
|
|
186
189
|
const handleGeoData = (0, react_1.useCallback)((data) => {
|
|
187
190
|
setField((prev) => (Object.assign(Object.assign({}, prev), data)));
|
|
191
|
+
setGenericError(null);
|
|
188
192
|
}, []);
|
|
189
193
|
const handleSubmit = (0, react_1.useCallback)(() => {
|
|
190
194
|
setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: true })));
|
|
195
|
+
setGenericError(null);
|
|
191
196
|
const formData = new FormData();
|
|
192
197
|
if (field.imageOriginalFile) {
|
|
193
198
|
formData.append('image_original', field.imageOriginalFile);
|
|
@@ -227,12 +232,23 @@ function EventForm(inProps) {
|
|
|
227
232
|
})
|
|
228
233
|
.catch((e) => {
|
|
229
234
|
const _error = (0, api_services_1.formatHttpErrorCode)(e);
|
|
230
|
-
if (Object.
|
|
231
|
-
|
|
235
|
+
if ('errorsError' in _error || !Object.keys(_error).length) {
|
|
236
|
+
setGenericError(intl.formatMessage({
|
|
237
|
+
id: 'ui.eventForm.genericError',
|
|
238
|
+
defaultMessage: 'ui.eventForm.genericError'
|
|
239
|
+
}));
|
|
232
240
|
}
|
|
233
241
|
else {
|
|
234
|
-
|
|
242
|
+
setGenericError(null);
|
|
235
243
|
}
|
|
244
|
+
let __errors = {};
|
|
245
|
+
if ('coverError' in _error) {
|
|
246
|
+
__errors = Object.assign(Object.assign({}, __errors), { ['coverError']: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.ui.eventForm.cover.error", defaultMessage: "ui.ui.eventForm.cover.error" }) });
|
|
247
|
+
}
|
|
248
|
+
if ('titleError' in _error) {
|
|
249
|
+
__errors = Object.assign(Object.assign({}, __errors), { ['titleError']: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.name.error.unique", defaultMessage: "ui.eventForm.name.error.unique" }) });
|
|
250
|
+
}
|
|
251
|
+
setError(__errors);
|
|
236
252
|
setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: false })));
|
|
237
253
|
utils_1.Logger.error(Errors_1.SCOPE_SC_UI, e);
|
|
238
254
|
onError === null || onError === void 0 ? void 0 : onError(e);
|
|
@@ -245,6 +261,7 @@ function EventForm(inProps) {
|
|
|
245
261
|
delete error[`${name}Error`];
|
|
246
262
|
setError(error);
|
|
247
263
|
}
|
|
264
|
+
setGenericError(null);
|
|
248
265
|
}, [setField, error]);
|
|
249
266
|
const handleChangeDateTime = (0, react_1.useCallback)((value, name) => {
|
|
250
267
|
setField((prev) => (Object.assign(Object.assign({}, prev), { [name]: value })));
|
|
@@ -256,6 +273,7 @@ function EventForm(inProps) {
|
|
|
256
273
|
delete error['endDateError'];
|
|
257
274
|
setError(error);
|
|
258
275
|
}
|
|
276
|
+
setGenericError(null);
|
|
259
277
|
}, [setField, error]);
|
|
260
278
|
const shouldDisableDate = (0, react_1.useCallback)((date) => {
|
|
261
279
|
let disabled = false;
|
|
@@ -279,8 +297,7 @@ function EventForm(inProps) {
|
|
|
279
297
|
/**
|
|
280
298
|
* Renders root object
|
|
281
299
|
*/
|
|
282
|
-
|
|
283
|
-
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, rest, { children: [(0, jsx_runtime_1.jsx)(material_1.Paper, Object.assign({ style: _backgroundCover, classes: { root: classes.cover } }, { children: (0, jsx_runtime_1.jsx)(UploadEventCover_1.default, { isCreationMode: true, onChange: handleChangeCover }) })), (0, jsx_runtime_1.jsxs)(material_1.FormGroup, Object.assign({ className: classes.form }, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { required: true, className: classes.name, placeholder: `${intl.formatMessage(messages.name)}`, margin: "normal", value: field.name, name: "name", onChange: handleChange, InputProps: {
|
|
300
|
+
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, rest, { children: [(0, jsx_runtime_1.jsx)(material_1.Paper, Object.assign({ style: _backgroundCover, classes: { root: classes.cover } }, { children: (0, jsx_runtime_1.jsx)(UploadEventCover_1.default, { isCreationMode: true, onChange: handleChangeCover }) })), Boolean(error['coverError']) && (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ color: "error" }, { children: error['coverError'] })), (0, jsx_runtime_1.jsxs)(material_1.FormGroup, Object.assign({ className: classes.form }, { children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { required: true, className: classes.name, placeholder: `${intl.formatMessage(messages.name)}`, margin: "normal", value: field.name, name: "name", onChange: handleChange, InputProps: {
|
|
284
301
|
endAdornment: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2" }, { children: Event_1.EVENT_TITLE_MAX_LENGTH - field.name.length }))
|
|
285
302
|
}, error: Boolean(field.name.length > Event_1.EVENT_TITLE_MAX_LENGTH) || Boolean(error['nameError']), helperText: field.name.length > Event_1.EVENT_TITLE_MAX_LENGTH ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.name.error.maxLength", defaultMessage: "ui.eventForm.name.error.maxLength" })) : error['nameError'] ? (error['nameError']) : null }), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.dateTime }, { children: (0, jsx_runtime_1.jsxs)(x_date_pickers_1.LocalizationProvider, Object.assign({ dateAdapter: AdapterDateFns_1.AdapterDateFns, adapterLocale: scContext.settings.locale.default === 'it' ? it_1.default : en_US_1.default }, { children: [(0, jsx_runtime_1.jsx)(x_date_pickers_1.MobileDatePicker, { className: classes.picker, disablePast: true, label: field.startDate && (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
|
|
286
303
|
textField: (params) => ((0, jsx_runtime_1.jsx)(material_1.TextField, Object.assign({}, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { placeholder: `${intl.formatMessage(messages.startDate)}`, startAdornment: ((0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "start" }, { children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "CalendarIcon" }) }) }))) }) })))
|
|
@@ -332,7 +349,7 @@ function EventForm(inProps) {
|
|
|
332
349
|
b: (chunks) => (0, jsx_runtime_1.jsx)("strong", { children: chunks })
|
|
333
350
|
} })) }))] }))), (0, jsx_runtime_1.jsx)(material_1.TextField, { multiline: true, className: classes.description, placeholder: `${intl.formatMessage(messages.description)}`, margin: "normal", value: field.description, name: "description", onChange: handleChange, InputProps: {
|
|
334
351
|
endAdornment: ((0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2" }, { children: ((_a = field.description) === null || _a === void 0 ? void 0 : _a.length) ? Event_1.EVENT_DESCRIPTION_MAX_LENGTH - field.description.length : Event_1.EVENT_DESCRIPTION_MAX_LENGTH })))
|
|
335
|
-
}, error: Boolean(((_b = field.description) === null || _b === void 0 ? void 0 : _b.length) > Event_1.EVENT_DESCRIPTION_MAX_LENGTH), helperText: ((_c = field.description) === null || _c === void 0 ? void 0 : _c.length) > Event_1.EVENT_DESCRIPTION_MAX_LENGTH ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.description.error.maxLength", defaultMessage: "ui.eventForm.description.error.maxLength" })) : null }), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.actions }, { children: (0, jsx_runtime_1.jsx)(lab_1.LoadingButton, Object.assign({ loading: field.isSubmitting, disabled: !field.name ||
|
|
352
|
+
}, error: Boolean(((_b = field.description) === null || _b === void 0 ? void 0 : _b.length) > Event_1.EVENT_DESCRIPTION_MAX_LENGTH), helperText: ((_c = field.description) === null || _c === void 0 ? void 0 : _c.length) > Event_1.EVENT_DESCRIPTION_MAX_LENGTH ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.description.error.maxLength", defaultMessage: "ui.eventForm.description.error.maxLength" })) : null }), genericError && ((0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.genericError }, { children: (0, jsx_runtime_1.jsx)(material_1.Alert, Object.assign({ variant: "filled", severity: "error" }, { children: genericError })) }))), (0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.actions }, { children: (0, jsx_runtime_1.jsx)(lab_1.LoadingButton, Object.assign({ loading: field.isSubmitting, disabled: !field.name ||
|
|
336
353
|
!field.startDate ||
|
|
337
354
|
!field.startTime ||
|
|
338
355
|
!field.endDate ||
|
|
@@ -99,7 +99,7 @@ function EventMembersWidget(inProps) {
|
|
|
99
99
|
utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
-
}, [participants.isLoadingNext, participants.initialized, scEvent, dispatchParticipants, setParticipantsCount]);
|
|
102
|
+
}, [participants.isLoadingNext, participants.initialized, scEvent, endpointQueryParams, dispatchParticipants, setParticipantsCount]);
|
|
103
103
|
const _initInvited = (0, react_1.useCallback)(() => {
|
|
104
104
|
if (!invited.initialized && !invited.isLoadingNext && hasAllow) {
|
|
105
105
|
dispatchInvited({ type: widget_1.actionWidgetTypes.LOADING_NEXT });
|
|
@@ -113,7 +113,7 @@ function EventMembersWidget(inProps) {
|
|
|
113
113
|
utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
|
-
}, [invited.isLoadingNext, invited.initialized, scEvent, dispatchInvited, setInvitedCount]);
|
|
116
|
+
}, [invited.isLoadingNext, invited.initialized, scEvent, hasAllow, endpointQueryParams, dispatchInvited, setInvitedCount]);
|
|
117
117
|
const _initRequests = (0, react_1.useCallback)(() => {
|
|
118
118
|
if (!requests.initialized && !requests.isLoadingNext && hasAllow) {
|
|
119
119
|
dispatchRequests({ type: widget_1.actionWidgetTypes.LOADING_NEXT });
|
|
@@ -128,7 +128,7 @@ function EventMembersWidget(inProps) {
|
|
|
128
128
|
utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
|
-
}, [requests.isLoadingNext, requests.initialized, scEvent, dispatchRequests, setRequestsCount, setRequestsUsers]);
|
|
131
|
+
}, [requests.isLoadingNext, requests.initialized, scEvent, hasAllow, endpointQueryParams, dispatchRequests, setRequestsCount, setRequestsUsers]);
|
|
132
132
|
// EFFECTS
|
|
133
133
|
(0, react_1.useEffect)(() => {
|
|
134
134
|
let _t;
|
|
@@ -152,18 +152,18 @@ function EventMembersWidget(inProps) {
|
|
|
152
152
|
clearTimeout(_t);
|
|
153
153
|
};
|
|
154
154
|
}
|
|
155
|
-
}, [scUserContext.user, scEvent, refresh]);
|
|
155
|
+
}, [scUserContext.user, scEvent, refresh, _initParticipants, _initInvited, _initRequests]);
|
|
156
156
|
(0, react_1.useEffect)(() => {
|
|
157
157
|
if (participants.initialized && scEvent && Boolean((eventId !== undefined && scEvent.id !== eventId) || (event && scEvent.id !== event.id))) {
|
|
158
158
|
dispatchParticipants({ type: widget_1.actionWidgetTypes.RESET, payload: {} });
|
|
159
159
|
dispatchRequests({ type: widget_1.actionWidgetTypes.RESET, payload: {} });
|
|
160
160
|
dispatchInvited({ type: widget_1.actionWidgetTypes.RESET, payload: {} });
|
|
161
161
|
}
|
|
162
|
-
}, [participants.initialized, scEvent, eventId, event]);
|
|
162
|
+
}, [participants.initialized, scEvent, eventId, event, dispatchParticipants, dispatchInvited, dispatchRequests]);
|
|
163
163
|
// HANDLERS
|
|
164
164
|
const handleTabChange = (0, react_1.useCallback)((_evt, newTabValue) => {
|
|
165
165
|
setTabValue(newTabValue);
|
|
166
|
-
}, []);
|
|
166
|
+
}, [setTabValue]);
|
|
167
167
|
const handleRefresh = (0, react_1.useCallback)((_tabValue) => {
|
|
168
168
|
if (_tabValue === types_1.TabContentEnum.PARTICIPANTS) {
|
|
169
169
|
dispatchParticipants({ type: widget_1.actionWidgetTypes.RESET });
|
|
@@ -172,7 +172,7 @@ function EventMembersWidget(inProps) {
|
|
|
172
172
|
dispatchInvited({ type: widget_1.actionWidgetTypes.RESET });
|
|
173
173
|
}
|
|
174
174
|
setRefresh(_tabValue);
|
|
175
|
-
}, []);
|
|
175
|
+
}, [dispatchParticipants, dispatchInvited, setRefresh]);
|
|
176
176
|
if (!scUserContext.user) {
|
|
177
177
|
return (0, jsx_runtime_1.jsx)(HiddenPlaceholder_1.default, {});
|
|
178
178
|
}
|
|
@@ -43,7 +43,7 @@ function TabContentComponent(props) {
|
|
|
43
43
|
// HOOKS
|
|
44
44
|
const { enqueueSnackbar } = (0, notistack_1.useSnackbar)();
|
|
45
45
|
// CONSTS
|
|
46
|
-
const users = (0, react_1.useMemo)(() => (tabValue === types_1.TabContentEnum.REQUESTS ? actionProps === null || actionProps === void 0 ? void 0 : actionProps.users : state.results), [tabValue, actionProps, state]);
|
|
46
|
+
const users = (0, react_1.useMemo)(() => (tabValue === types_1.TabContentEnum.REQUESTS ? actionProps === null || actionProps === void 0 ? void 0 : actionProps.users : state.results), [tabValue, actionProps === null || actionProps === void 0 ? void 0 : actionProps.users, state.results]);
|
|
47
47
|
// EFFECTS
|
|
48
48
|
(0, react_1.useEffect)(() => {
|
|
49
49
|
updatesInvited.current = pubsub_js_1.default.subscribe(`${PubSub_1.SCTopicType.EVENT}.${PubSub_1.SCGroupEventType.INVITE_MEMBER}`, handleInviteMember);
|
|
@@ -53,6 +53,11 @@ function TabContentComponent(props) {
|
|
|
53
53
|
updatesParticipants.current && pubsub_js_1.default.unsubscribe(updatesParticipants.current);
|
|
54
54
|
};
|
|
55
55
|
}, []);
|
|
56
|
+
(0, react_1.useEffect)(() => {
|
|
57
|
+
if (openDialog && state.next && state.initialized) {
|
|
58
|
+
handleNext();
|
|
59
|
+
}
|
|
60
|
+
}, [openDialog, state.next, state.initialized]);
|
|
56
61
|
// HANDLERS
|
|
57
62
|
/**
|
|
58
63
|
* Handles pagination
|
|
@@ -70,16 +75,16 @@ function TabContentComponent(props) {
|
|
|
70
75
|
.catch((error) => {
|
|
71
76
|
utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
|
|
72
77
|
});
|
|
73
|
-
}, [state.next, state.isLoadingNext, state.initialized]);
|
|
78
|
+
}, [state.next, state.isLoadingNext, state.initialized, dispatch]);
|
|
74
79
|
const handleToggleDialogOpen = (0, react_1.useCallback)(() => {
|
|
75
80
|
setOpenDialog((prev) => !prev);
|
|
76
|
-
}, []);
|
|
81
|
+
}, [setOpenDialog]);
|
|
77
82
|
const handleToggleMember = (0, react_1.useCallback)(() => {
|
|
78
83
|
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(types_1.TabContentEnum.PARTICIPANTS);
|
|
79
|
-
}, []);
|
|
84
|
+
}, [handleRefresh]);
|
|
80
85
|
const handleInviteMember = (0, react_1.useCallback)(() => {
|
|
81
86
|
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(types_1.TabContentEnum.INVITED);
|
|
82
|
-
}, []);
|
|
87
|
+
}, [handleRefresh]);
|
|
83
88
|
const getActionsComponent = (0, react_1.useCallback)((userId) => {
|
|
84
89
|
if (tabValue === types_1.TabContentEnum.INVITED && actionProps) {
|
|
85
90
|
const _handleInvitations = (invited) => {
|
|
@@ -130,6 +135,6 @@ function TabContentComponent(props) {
|
|
|
130
135
|
else if (tabValue === types_1.TabContentEnum.REQUESTS && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.count) === 0) {
|
|
131
136
|
return ((0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.noOtherRequests", defaultMessage: "ui.eventMembersWidget.noOtherRequests" }) })));
|
|
132
137
|
}
|
|
133
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.List, { children: users === null || users === void 0 ? void 0 : users.map((user) => ((0, jsx_runtime_1.jsx)(material_1.ListItem, { children: (0, jsx_runtime_1.jsx)(User_1.default, Object.assign({ elevation: 0, user: user }, userProps, { actions: getActionsComponent(user.id) })) }, user.id))) }), state.count > state.visibleItems && ((0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ onClick: handleToggleDialogOpen, className: classes.actionButton }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.showAll", defaultMessage: "ui.eventMembersWidget.showAll" }) })) }))), openDialog && ((0, jsx_runtime_1.jsx)(DialogRoot, Object.assign({ className: classes.dialogRoot, title: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.eventMembersWidget.title", id: "ui.eventMembersWidget.title" }), onClose: handleToggleDialogOpen, open: openDialog }, dialogProps, { children: (0, jsx_runtime_1.jsx)(InfiniteScroll_1.default, Object.assign({ dataLength: state.results.length, next: handleNext, hasMoreNext: Boolean(state.next), loaderNext: (0, jsx_runtime_1.jsx)(User_1.UserSkeleton, Object.assign({ elevation: 0 }, userProps)), className: classes.infiniteScroll, endMessage: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ className: classes.endMessage }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.noMoreResults", defaultMessage: "ui.eventMembersWidget.noMoreResults" }) })) }, { children: (0, jsx_runtime_1.jsx)(material_1.List, { children: state.results.map((user) => ((0, jsx_runtime_1.jsx)(material_1.ListItem, { children: (0, jsx_runtime_1.jsx)(User_1.default, Object.assign({ elevation: 0, user: user }, userProps)) }, user.id))) }) })) })))] }));
|
|
138
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.List, { children: users === null || users === void 0 ? void 0 : users.slice(0, state.visibleItems).map((user) => ((0, jsx_runtime_1.jsx)(material_1.ListItem, { children: (0, jsx_runtime_1.jsx)(User_1.default, Object.assign({ elevation: 0, user: user }, userProps, { actions: getActionsComponent(user.id) })) }, user.id))) }), state.count > state.visibleItems && ((0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ onClick: handleToggleDialogOpen, className: classes.actionButton }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.showAll", defaultMessage: "ui.eventMembersWidget.showAll" }) })) }))), openDialog && ((0, jsx_runtime_1.jsx)(DialogRoot, Object.assign({ className: classes.dialogRoot, title: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.eventMembersWidget.title", id: "ui.eventMembersWidget.title" }), onClose: handleToggleDialogOpen, open: openDialog }, dialogProps, { children: (0, jsx_runtime_1.jsx)(InfiniteScroll_1.default, Object.assign({ dataLength: state.results.length, next: handleNext, hasMoreNext: Boolean(state.next), loaderNext: (0, jsx_runtime_1.jsx)(User_1.UserSkeleton, Object.assign({ elevation: 0 }, userProps)), className: classes.infiniteScroll, endMessage: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ className: classes.endMessage }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.noMoreResults", defaultMessage: "ui.eventMembersWidget.noMoreResults" }) })) }, { children: (0, jsx_runtime_1.jsx)(material_1.List, { children: state.results.map((user) => ((0, jsx_runtime_1.jsx)(material_1.ListItem, { children: (0, jsx_runtime_1.jsx)(User_1.default, Object.assign({ elevation: 0, user: user }, userProps)) }, user.id))) }) })) })))] }));
|
|
134
139
|
}
|
|
135
140
|
exports.default = TabContentComponent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __rest } from "tslib";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { LoadingButton } from '@mui/lab';
|
|
4
|
-
import { Box, FormControl, FormGroup, Icon, IconButton, InputAdornment, InputLabel, MenuItem, Paper, Select, Stack, Switch, TextField, Typography } from '@mui/material';
|
|
4
|
+
import { Alert, Box, FormControl, FormGroup, Icon, IconButton, InputAdornment, InputLabel, MenuItem, Paper, Select, Stack, Switch, TextField, Typography } from '@mui/material';
|
|
5
5
|
import { styled } from '@mui/material/styles';
|
|
6
6
|
import { useThemeProps } from '@mui/system';
|
|
7
7
|
import { LocalizationProvider, MobileDatePicker, MobileTimePicker } from '@mui/x-date-pickers';
|
|
@@ -74,7 +74,8 @@ const classes = {
|
|
|
74
74
|
actions: `${PREFIX}-actions`,
|
|
75
75
|
privacySection: `${PREFIX}-privacy-section`,
|
|
76
76
|
privacySectionInfo: `${PREFIX}-privacy-section-info`,
|
|
77
|
-
error: `${PREFIX}-error
|
|
77
|
+
error: `${PREFIX}-error`,
|
|
78
|
+
genericError: `${PREFIX}-generic-error`
|
|
78
79
|
};
|
|
79
80
|
const Root = styled(Box, {
|
|
80
81
|
name: PREFIX,
|
|
@@ -146,6 +147,7 @@ export default function EventForm(inProps) {
|
|
|
146
147
|
// STATE
|
|
147
148
|
const [field, setField] = useState(initialFieldState);
|
|
148
149
|
const [error, setError] = useState({});
|
|
150
|
+
const [genericError, setGenericError] = useState(null);
|
|
149
151
|
// PREFERENCES
|
|
150
152
|
const scPreferences = useSCPreferences();
|
|
151
153
|
const privateEnabled = useMemo(() => scPreferences.preferences[SCPreferences.CONFIGURATIONS_EVENTS_PRIVATE_ENABLED].value, [scPreferences.preferences]);
|
|
@@ -166,6 +168,7 @@ export default function EventForm(inProps) {
|
|
|
166
168
|
delete error.imageOriginalError;
|
|
167
169
|
setError(error);
|
|
168
170
|
}
|
|
171
|
+
setGenericError(null);
|
|
169
172
|
}, [error]);
|
|
170
173
|
/**
|
|
171
174
|
* Notify when a group info changed
|
|
@@ -183,9 +186,11 @@ export default function EventForm(inProps) {
|
|
|
183
186
|
}, [event]);
|
|
184
187
|
const handleGeoData = useCallback((data) => {
|
|
185
188
|
setField((prev) => (Object.assign(Object.assign({}, prev), data)));
|
|
189
|
+
setGenericError(null);
|
|
186
190
|
}, []);
|
|
187
191
|
const handleSubmit = useCallback(() => {
|
|
188
192
|
setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: true })));
|
|
193
|
+
setGenericError(null);
|
|
189
194
|
const formData = new FormData();
|
|
190
195
|
if (field.imageOriginalFile) {
|
|
191
196
|
formData.append('image_original', field.imageOriginalFile);
|
|
@@ -225,12 +230,23 @@ export default function EventForm(inProps) {
|
|
|
225
230
|
})
|
|
226
231
|
.catch((e) => {
|
|
227
232
|
const _error = formatHttpErrorCode(e);
|
|
228
|
-
if (Object.
|
|
229
|
-
|
|
233
|
+
if ('errorsError' in _error || !Object.keys(_error).length) {
|
|
234
|
+
setGenericError(intl.formatMessage({
|
|
235
|
+
id: 'ui.eventForm.genericError',
|
|
236
|
+
defaultMessage: 'ui.eventForm.genericError'
|
|
237
|
+
}));
|
|
230
238
|
}
|
|
231
239
|
else {
|
|
232
|
-
|
|
240
|
+
setGenericError(null);
|
|
233
241
|
}
|
|
242
|
+
let __errors = {};
|
|
243
|
+
if ('coverError' in _error) {
|
|
244
|
+
__errors = Object.assign(Object.assign({}, __errors), { ['coverError']: _jsx(FormattedMessage, { id: "ui.ui.eventForm.cover.error", defaultMessage: "ui.ui.eventForm.cover.error" }) });
|
|
245
|
+
}
|
|
246
|
+
if ('titleError' in _error) {
|
|
247
|
+
__errors = Object.assign(Object.assign({}, __errors), { ['titleError']: _jsx(FormattedMessage, { id: "ui.eventForm.name.error.unique", defaultMessage: "ui.eventForm.name.error.unique" }) });
|
|
248
|
+
}
|
|
249
|
+
setError(__errors);
|
|
234
250
|
setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: false })));
|
|
235
251
|
Logger.error(SCOPE_SC_UI, e);
|
|
236
252
|
onError === null || onError === void 0 ? void 0 : onError(e);
|
|
@@ -243,6 +259,7 @@ export default function EventForm(inProps) {
|
|
|
243
259
|
delete error[`${name}Error`];
|
|
244
260
|
setError(error);
|
|
245
261
|
}
|
|
262
|
+
setGenericError(null);
|
|
246
263
|
}, [setField, error]);
|
|
247
264
|
const handleChangeDateTime = useCallback((value, name) => {
|
|
248
265
|
setField((prev) => (Object.assign(Object.assign({}, prev), { [name]: value })));
|
|
@@ -254,6 +271,7 @@ export default function EventForm(inProps) {
|
|
|
254
271
|
delete error['endDateError'];
|
|
255
272
|
setError(error);
|
|
256
273
|
}
|
|
274
|
+
setGenericError(null);
|
|
257
275
|
}, [setField, error]);
|
|
258
276
|
const shouldDisableDate = useCallback((date) => {
|
|
259
277
|
let disabled = false;
|
|
@@ -277,8 +295,7 @@ export default function EventForm(inProps) {
|
|
|
277
295
|
/**
|
|
278
296
|
* Renders root object
|
|
279
297
|
*/
|
|
280
|
-
|
|
281
|
-
return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, rest, { children: [_jsx(Paper, Object.assign({ style: _backgroundCover, classes: { root: classes.cover } }, { children: _jsx(UploadEventCover, { isCreationMode: true, onChange: handleChangeCover }) })), _jsxs(FormGroup, Object.assign({ className: classes.form }, { children: [_jsx(TextField, { required: true, className: classes.name, placeholder: `${intl.formatMessage(messages.name)}`, margin: "normal", value: field.name, name: "name", onChange: handleChange, InputProps: {
|
|
298
|
+
return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, rest, { children: [_jsx(Paper, Object.assign({ style: _backgroundCover, classes: { root: classes.cover } }, { children: _jsx(UploadEventCover, { isCreationMode: true, onChange: handleChangeCover }) })), Boolean(error['coverError']) && _jsx(Typography, Object.assign({ color: "error" }, { children: error['coverError'] })), _jsxs(FormGroup, Object.assign({ className: classes.form }, { children: [_jsx(TextField, { required: true, className: classes.name, placeholder: `${intl.formatMessage(messages.name)}`, margin: "normal", value: field.name, name: "name", onChange: handleChange, InputProps: {
|
|
282
299
|
endAdornment: _jsx(Typography, Object.assign({ variant: "body2" }, { children: EVENT_TITLE_MAX_LENGTH - field.name.length }))
|
|
283
300
|
}, error: Boolean(field.name.length > EVENT_TITLE_MAX_LENGTH) || Boolean(error['nameError']), helperText: field.name.length > EVENT_TITLE_MAX_LENGTH ? (_jsx(FormattedMessage, { id: "ui.eventForm.name.error.maxLength", defaultMessage: "ui.eventForm.name.error.maxLength" })) : error['nameError'] ? (error['nameError']) : null }), _jsx(Box, Object.assign({ className: classes.dateTime }, { children: _jsxs(LocalizationProvider, Object.assign({ dateAdapter: AdapterDateFns, adapterLocale: scContext.settings.locale.default === 'it' ? itLocale : enLocale }, { children: [_jsx(MobileDatePicker, { className: classes.picker, disablePast: true, label: field.startDate && _jsx(FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
|
|
284
301
|
textField: (params) => (_jsx(TextField, Object.assign({}, params, { InputProps: Object.assign(Object.assign({}, params.InputProps), { placeholder: `${intl.formatMessage(messages.startDate)}`, startAdornment: (_jsx(InputAdornment, Object.assign({ position: "start" }, { children: _jsx(IconButton, { children: _jsx(Icon, { children: "CalendarIcon" }) }) }))) }) })))
|
|
@@ -330,7 +347,7 @@ export default function EventForm(inProps) {
|
|
|
330
347
|
b: (chunks) => _jsx("strong", { children: chunks })
|
|
331
348
|
} })) }))] }))), _jsx(TextField, { multiline: true, className: classes.description, placeholder: `${intl.formatMessage(messages.description)}`, margin: "normal", value: field.description, name: "description", onChange: handleChange, InputProps: {
|
|
332
349
|
endAdornment: (_jsx(Typography, Object.assign({ variant: "body2" }, { children: ((_a = field.description) === null || _a === void 0 ? void 0 : _a.length) ? EVENT_DESCRIPTION_MAX_LENGTH - field.description.length : EVENT_DESCRIPTION_MAX_LENGTH })))
|
|
333
|
-
}, error: Boolean(((_b = field.description) === null || _b === void 0 ? void 0 : _b.length) > EVENT_DESCRIPTION_MAX_LENGTH), helperText: ((_c = field.description) === null || _c === void 0 ? void 0 : _c.length) > EVENT_DESCRIPTION_MAX_LENGTH ? (_jsx(FormattedMessage, { id: "ui.eventForm.description.error.maxLength", defaultMessage: "ui.eventForm.description.error.maxLength" })) : null }), _jsx(Box, Object.assign({ className: classes.actions }, { children: _jsx(LoadingButton, Object.assign({ loading: field.isSubmitting, disabled: !field.name ||
|
|
350
|
+
}, error: Boolean(((_b = field.description) === null || _b === void 0 ? void 0 : _b.length) > EVENT_DESCRIPTION_MAX_LENGTH), helperText: ((_c = field.description) === null || _c === void 0 ? void 0 : _c.length) > EVENT_DESCRIPTION_MAX_LENGTH ? (_jsx(FormattedMessage, { id: "ui.eventForm.description.error.maxLength", defaultMessage: "ui.eventForm.description.error.maxLength" })) : null }), genericError && (_jsx(Box, Object.assign({ className: classes.genericError }, { children: _jsx(Alert, Object.assign({ variant: "filled", severity: "error" }, { children: genericError })) }))), _jsx(Box, Object.assign({ className: classes.actions }, { children: _jsx(LoadingButton, Object.assign({ loading: field.isSubmitting, disabled: !field.name ||
|
|
334
351
|
!field.startDate ||
|
|
335
352
|
!field.startTime ||
|
|
336
353
|
!field.endDate ||
|
|
@@ -97,7 +97,7 @@ export default function EventMembersWidget(inProps) {
|
|
|
97
97
|
Logger.error(SCOPE_SC_UI, error);
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
|
-
}, [participants.isLoadingNext, participants.initialized, scEvent, dispatchParticipants, setParticipantsCount]);
|
|
100
|
+
}, [participants.isLoadingNext, participants.initialized, scEvent, endpointQueryParams, dispatchParticipants, setParticipantsCount]);
|
|
101
101
|
const _initInvited = useCallback(() => {
|
|
102
102
|
if (!invited.initialized && !invited.isLoadingNext && hasAllow) {
|
|
103
103
|
dispatchInvited({ type: actionWidgetTypes.LOADING_NEXT });
|
|
@@ -111,7 +111,7 @@ export default function EventMembersWidget(inProps) {
|
|
|
111
111
|
Logger.error(SCOPE_SC_UI, error);
|
|
112
112
|
});
|
|
113
113
|
}
|
|
114
|
-
}, [invited.isLoadingNext, invited.initialized, scEvent, dispatchInvited, setInvitedCount]);
|
|
114
|
+
}, [invited.isLoadingNext, invited.initialized, scEvent, hasAllow, endpointQueryParams, dispatchInvited, setInvitedCount]);
|
|
115
115
|
const _initRequests = useCallback(() => {
|
|
116
116
|
if (!requests.initialized && !requests.isLoadingNext && hasAllow) {
|
|
117
117
|
dispatchRequests({ type: actionWidgetTypes.LOADING_NEXT });
|
|
@@ -126,7 +126,7 @@ export default function EventMembersWidget(inProps) {
|
|
|
126
126
|
Logger.error(SCOPE_SC_UI, error);
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
|
-
}, [requests.isLoadingNext, requests.initialized, scEvent, dispatchRequests, setRequestsCount, setRequestsUsers]);
|
|
129
|
+
}, [requests.isLoadingNext, requests.initialized, scEvent, hasAllow, endpointQueryParams, dispatchRequests, setRequestsCount, setRequestsUsers]);
|
|
130
130
|
// EFFECTS
|
|
131
131
|
useEffect(() => {
|
|
132
132
|
let _t;
|
|
@@ -150,18 +150,18 @@ export default function EventMembersWidget(inProps) {
|
|
|
150
150
|
clearTimeout(_t);
|
|
151
151
|
};
|
|
152
152
|
}
|
|
153
|
-
}, [scUserContext.user, scEvent, refresh]);
|
|
153
|
+
}, [scUserContext.user, scEvent, refresh, _initParticipants, _initInvited, _initRequests]);
|
|
154
154
|
useEffect(() => {
|
|
155
155
|
if (participants.initialized && scEvent && Boolean((eventId !== undefined && scEvent.id !== eventId) || (event && scEvent.id !== event.id))) {
|
|
156
156
|
dispatchParticipants({ type: actionWidgetTypes.RESET, payload: {} });
|
|
157
157
|
dispatchRequests({ type: actionWidgetTypes.RESET, payload: {} });
|
|
158
158
|
dispatchInvited({ type: actionWidgetTypes.RESET, payload: {} });
|
|
159
159
|
}
|
|
160
|
-
}, [participants.initialized, scEvent, eventId, event]);
|
|
160
|
+
}, [participants.initialized, scEvent, eventId, event, dispatchParticipants, dispatchInvited, dispatchRequests]);
|
|
161
161
|
// HANDLERS
|
|
162
162
|
const handleTabChange = useCallback((_evt, newTabValue) => {
|
|
163
163
|
setTabValue(newTabValue);
|
|
164
|
-
}, []);
|
|
164
|
+
}, [setTabValue]);
|
|
165
165
|
const handleRefresh = useCallback((_tabValue) => {
|
|
166
166
|
if (_tabValue === TabContentEnum.PARTICIPANTS) {
|
|
167
167
|
dispatchParticipants({ type: actionWidgetTypes.RESET });
|
|
@@ -170,7 +170,7 @@ export default function EventMembersWidget(inProps) {
|
|
|
170
170
|
dispatchInvited({ type: actionWidgetTypes.RESET });
|
|
171
171
|
}
|
|
172
172
|
setRefresh(_tabValue);
|
|
173
|
-
}, []);
|
|
173
|
+
}, [dispatchParticipants, dispatchInvited, setRefresh]);
|
|
174
174
|
if (!scUserContext.user) {
|
|
175
175
|
return _jsx(HiddenPlaceholder, {});
|
|
176
176
|
}
|
|
@@ -40,7 +40,7 @@ export default function TabContentComponent(props) {
|
|
|
40
40
|
// HOOKS
|
|
41
41
|
const { enqueueSnackbar } = useSnackbar();
|
|
42
42
|
// CONSTS
|
|
43
|
-
const users = useMemo(() => (tabValue === TabContentEnum.REQUESTS ? actionProps === null || actionProps === void 0 ? void 0 : actionProps.users : state.results), [tabValue, actionProps, state]);
|
|
43
|
+
const users = useMemo(() => (tabValue === TabContentEnum.REQUESTS ? actionProps === null || actionProps === void 0 ? void 0 : actionProps.users : state.results), [tabValue, actionProps === null || actionProps === void 0 ? void 0 : actionProps.users, state.results]);
|
|
44
44
|
// EFFECTS
|
|
45
45
|
useEffect(() => {
|
|
46
46
|
updatesInvited.current = PubSub.subscribe(`${SCTopicType.EVENT}.${SCGroupEventType.INVITE_MEMBER}`, handleInviteMember);
|
|
@@ -50,6 +50,11 @@ export default function TabContentComponent(props) {
|
|
|
50
50
|
updatesParticipants.current && PubSub.unsubscribe(updatesParticipants.current);
|
|
51
51
|
};
|
|
52
52
|
}, []);
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (openDialog && state.next && state.initialized) {
|
|
55
|
+
handleNext();
|
|
56
|
+
}
|
|
57
|
+
}, [openDialog, state.next, state.initialized]);
|
|
53
58
|
// HANDLERS
|
|
54
59
|
/**
|
|
55
60
|
* Handles pagination
|
|
@@ -67,16 +72,16 @@ export default function TabContentComponent(props) {
|
|
|
67
72
|
.catch((error) => {
|
|
68
73
|
Logger.error(SCOPE_SC_UI, error);
|
|
69
74
|
});
|
|
70
|
-
}, [state.next, state.isLoadingNext, state.initialized]);
|
|
75
|
+
}, [state.next, state.isLoadingNext, state.initialized, dispatch]);
|
|
71
76
|
const handleToggleDialogOpen = useCallback(() => {
|
|
72
77
|
setOpenDialog((prev) => !prev);
|
|
73
|
-
}, []);
|
|
78
|
+
}, [setOpenDialog]);
|
|
74
79
|
const handleToggleMember = useCallback(() => {
|
|
75
80
|
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(TabContentEnum.PARTICIPANTS);
|
|
76
|
-
}, []);
|
|
81
|
+
}, [handleRefresh]);
|
|
77
82
|
const handleInviteMember = useCallback(() => {
|
|
78
83
|
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(TabContentEnum.INVITED);
|
|
79
|
-
}, []);
|
|
84
|
+
}, [handleRefresh]);
|
|
80
85
|
const getActionsComponent = useCallback((userId) => {
|
|
81
86
|
if (tabValue === TabContentEnum.INVITED && actionProps) {
|
|
82
87
|
const _handleInvitations = (invited) => {
|
|
@@ -127,5 +132,5 @@ export default function TabContentComponent(props) {
|
|
|
127
132
|
else if (tabValue === TabContentEnum.REQUESTS && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.count) === 0) {
|
|
128
133
|
return (_jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.noOtherRequests", defaultMessage: "ui.eventMembersWidget.noOtherRequests" }) })));
|
|
129
134
|
}
|
|
130
|
-
return (_jsxs(_Fragment, { children: [_jsx(List, { children: users === null || users === void 0 ? void 0 : users.map((user) => (_jsx(ListItem, { children: _jsx(User, Object.assign({ elevation: 0, user: user }, userProps, { actions: getActionsComponent(user.id) })) }, user.id))) }), state.count > state.visibleItems && (_jsx(Button, Object.assign({ onClick: handleToggleDialogOpen, className: classes.actionButton }, { children: _jsx(Typography, Object.assign({ variant: "caption" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.showAll", defaultMessage: "ui.eventMembersWidget.showAll" }) })) }))), openDialog && (_jsx(DialogRoot, Object.assign({ className: classes.dialogRoot, title: _jsx(FormattedMessage, { defaultMessage: "ui.eventMembersWidget.title", id: "ui.eventMembersWidget.title" }), onClose: handleToggleDialogOpen, open: openDialog }, dialogProps, { children: _jsx(InfiniteScroll, Object.assign({ dataLength: state.results.length, next: handleNext, hasMoreNext: Boolean(state.next), loaderNext: _jsx(UserSkeleton, Object.assign({ elevation: 0 }, userProps)), className: classes.infiniteScroll, endMessage: _jsx(Typography, Object.assign({ className: classes.endMessage }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.noMoreResults", defaultMessage: "ui.eventMembersWidget.noMoreResults" }) })) }, { children: _jsx(List, { children: state.results.map((user) => (_jsx(ListItem, { children: _jsx(User, Object.assign({ elevation: 0, user: user }, userProps)) }, user.id))) }) })) })))] }));
|
|
135
|
+
return (_jsxs(_Fragment, { children: [_jsx(List, { children: users === null || users === void 0 ? void 0 : users.slice(0, state.visibleItems).map((user) => (_jsx(ListItem, { children: _jsx(User, Object.assign({ elevation: 0, user: user }, userProps, { actions: getActionsComponent(user.id) })) }, user.id))) }), state.count > state.visibleItems && (_jsx(Button, Object.assign({ onClick: handleToggleDialogOpen, className: classes.actionButton }, { children: _jsx(Typography, Object.assign({ variant: "caption" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.showAll", defaultMessage: "ui.eventMembersWidget.showAll" }) })) }))), openDialog && (_jsx(DialogRoot, Object.assign({ className: classes.dialogRoot, title: _jsx(FormattedMessage, { defaultMessage: "ui.eventMembersWidget.title", id: "ui.eventMembersWidget.title" }), onClose: handleToggleDialogOpen, open: openDialog }, dialogProps, { children: _jsx(InfiniteScroll, Object.assign({ dataLength: state.results.length, next: handleNext, hasMoreNext: Boolean(state.next), loaderNext: _jsx(UserSkeleton, Object.assign({ elevation: 0 }, userProps)), className: classes.infiniteScroll, endMessage: _jsx(Typography, Object.assign({ className: classes.endMessage }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.noMoreResults", defaultMessage: "ui.eventMembersWidget.noMoreResults" }) })) }, { children: _jsx(List, { children: state.results.map((user) => (_jsx(ListItem, { children: _jsx(User, Object.assign({ elevation: 0, user: user }, userProps)) }, user.id))) }) })) })))] }));
|
|
131
136
|
}
|