@selfcommunity/react-ui 0.10.4-alpha.12 → 0.10.4-alpha.14
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 +2 -2
- package/lib/cjs/components/EventMembersWidget/EventMembersWidget.js +7 -7
- package/lib/cjs/components/EventMembersWidget/TabContentComponent.js +11 -6
- package/lib/cjs/components/Events/Events.js +9 -9
- package/lib/cjs/components/MyEventsWidget/Skeleton.js +2 -4
- package/lib/esm/components/EventForm/EventForm.js +2 -2
- package/lib/esm/components/EventMembersWidget/EventMembersWidget.js +7 -7
- package/lib/esm/components/EventMembersWidget/TabContentComponent.js +11 -6
- package/lib/esm/components/Events/Events.js +9 -9
- package/lib/esm/components/MyEventsWidget/Skeleton.js +1 -3
- package/lib/umd/react-ui.js +2 -2
- package/package.json +2 -2
|
@@ -245,8 +245,8 @@ function EventForm(inProps) {
|
|
|
245
245
|
if ('coverError' in _error) {
|
|
246
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
247
|
}
|
|
248
|
-
if ('
|
|
249
|
-
__errors = Object.assign(Object.assign({}, __errors), { ['
|
|
248
|
+
if ('nameError' in _error || ('nonFieldErrorsError' in _error && _error['nonFieldErrorsError'].error === 'unique')) {
|
|
249
|
+
__errors = Object.assign(Object.assign({}, __errors), { ['nameError']: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.name.error.unique", defaultMessage: "ui.eventForm.name.error.unique" }) });
|
|
250
250
|
}
|
|
251
251
|
setError(__errors);
|
|
252
252
|
setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: false })));
|
|
@@ -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;
|
|
@@ -121,14 +121,14 @@ function Events(inProps) {
|
|
|
121
121
|
/**
|
|
122
122
|
* Fetches events list
|
|
123
123
|
*/
|
|
124
|
-
const fetchEvents = (
|
|
124
|
+
const fetchEvents = () => {
|
|
125
125
|
setLoading(true);
|
|
126
126
|
return api_services_1.http
|
|
127
127
|
.request({
|
|
128
128
|
url: endpoint.url({}),
|
|
129
129
|
method: endpoint.method,
|
|
130
130
|
params: Object.assign(Object.assign({}, endpointQueryParams), (general
|
|
131
|
-
? Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (
|
|
131
|
+
? Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (query && { search: query })), (dateSearch !== types_1.SCEventDateFilterType.ANY && { date_filter: dateSearch })), (location !== types_1.SCEventLocationFilterType.ANY && { location })), (showFollowed && { follows: showFollowed })), (showPastEvents && { date_filter: types_1.SCEventDateFilterType.PAST })) : Object.assign(Object.assign(Object.assign({ subscription_status: types_1.SCEventSubscriptionStatusType.GOING }, (location !== types_1.SCEventLocationFilterType.ANY && { location })), (showPastEvents && { past: showPastEvents })), (showMyEvents && { created_by: authUserId }))))
|
|
132
132
|
})
|
|
133
133
|
.then((res) => {
|
|
134
134
|
setEvents(res.data.results);
|
|
@@ -147,9 +147,9 @@ function Events(inProps) {
|
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
else {
|
|
150
|
-
|
|
150
|
+
fetchEvents();
|
|
151
151
|
}
|
|
152
|
-
}, [contentAvailability, authUserId, dateSearch, location, showFollowed, showPastEvents, showMyEvents
|
|
152
|
+
}, [contentAvailability, authUserId, dateSearch, location, showFollowed, showPastEvents, showMyEvents]);
|
|
153
153
|
/**
|
|
154
154
|
* Subscriber for pubsub callback
|
|
155
155
|
*/
|
|
@@ -214,16 +214,16 @@ function Events(inProps) {
|
|
|
214
214
|
*/
|
|
215
215
|
const c = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [showFilters && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ container: true, className: classes.filters, gap: 2 }, { children: filters ? (filters) : !general ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(events.length !== 0 || (events.length === 0 && showMyEvents)) && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(exports.EventsChipRoot, { color: showMyEvents ? 'secondary' : 'default', variant: showMyEvents ? 'filled' : 'outlined', label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByCreatedByMe", defaultMessage: "ui.events.filterByCreatedByMe" }), onClick: () => setShowMyEvents(!showMyEvents),
|
|
216
216
|
// @ts-expect-error this is needed to use showFollowed into SCEvents
|
|
217
|
-
showFollowed: showMyEvents, deleteIcon: showMyEvents ? (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "close" }) : null, onDelete: showMyEvents ? handleDeleteClick : null, disabled: loading }) }))), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(PastEventsFilter_1.default, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: loading }) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsx)(LocationEventsFilter_1.default, { value: location,
|
|
217
|
+
showFollowed: showMyEvents, deleteIcon: showMyEvents ? (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "close" }) : null, onDelete: showMyEvents ? handleDeleteClick : null, disabled: loading }) }))), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(PastEventsFilter_1.default, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: loading }) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsx)(LocationEventsFilter_1.default, { value: location, disabled: loading, handleOnChange: handleOnChangeLocation }) }))] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 3 }, { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { className: classes.search, size: 'small', fullWidth: true, value: query, label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByName", defaultMessage: "ui.events.filterByName" }), variant: "outlined", onChange: handleOnChangeFilterName, disabled: loading, onKeyUp: (e) => {
|
|
218
218
|
e.preventDefault();
|
|
219
219
|
if (e.key === 'Enter') {
|
|
220
|
-
fetchEvents(
|
|
220
|
+
fetchEvents();
|
|
221
221
|
}
|
|
222
222
|
}, InputProps: {
|
|
223
|
-
endAdornment: ((0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "end" }, { children: isMobile ? ((0, jsx_runtime_1.jsx)(material_1.IconButton, Object.assign({ onClick: () => fetchEvents(
|
|
224
|
-
} }) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsxs)(material_1.FormControl, Object.assign({ fullWidth: true }, { children: [(0, jsx_runtime_1.jsx)(material_1.InputLabel, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }) }), (0, jsx_runtime_1.jsx)(material_1.Select, Object.assign({ disabled: showPastEvents || loading
|
|
223
|
+
endAdornment: ((0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "end" }, { children: isMobile ? ((0, jsx_runtime_1.jsx)(material_1.IconButton, Object.assign({ onClick: () => fetchEvents(), disabled: loading }, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "search" }) }))) : ((0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", variant: "contained", color: "secondary", onClick: () => fetchEvents(), endIcon: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "search" }), disabled: loading })) })))
|
|
224
|
+
} }) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsxs)(material_1.FormControl, Object.assign({ fullWidth: true }, { children: [(0, jsx_runtime_1.jsx)(material_1.InputLabel, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }) }), (0, jsx_runtime_1.jsx)(material_1.Select, Object.assign({ disabled: showPastEvents || loading, size: 'small', label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }), value: dateSearch, onChange: handleOnChangeTimeFrame, renderValue: (selected) => options.find((option) => option.value === selected).label }, { children: options.map((option) => ((0, jsx_runtime_1.jsxs)(material_1.MenuItem, Object.assign({ value: option.value }, { children: [(0, jsx_runtime_1.jsx)(material_1.Radio, { checked: dateSearch === option.value, value: option.value, name: "radio-button-select", inputProps: { 'aria-label': option.label } }), option.label] }), option.value))) }))] })) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsx)(LocationEventsFilter_1.default, { value: location, disabled: loading, handleOnChange: handleOnChangeLocation }) })), authUserId && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(exports.EventsChipRoot, { color: showFollowed ? 'secondary' : 'default', variant: showFollowed ? 'filled' : 'outlined', label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByFollowedInterest", defaultMessage: "ui.events.filterByFollowedInterest" }), onClick: handleChipClick,
|
|
225
225
|
// @ts-expect-error this is needed to use showFollowed into SCEvents
|
|
226
|
-
showFollowed: showFollowed, deleteIcon: showFollowed ? (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "close" }) : null, onDelete: showFollowed ? handleDeleteClick : null, disabled: loading
|
|
226
|
+
showFollowed: showFollowed, deleteIcon: showFollowed ? (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "close" }) : null, onDelete: showFollowed ? handleDeleteClick : null, disabled: loading }) }))), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(PastEventsFilter_1.default, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: dateSearch !== types_1.SCEventDateFilterType.ANY || loading }) }))] })) }))), (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: loading ? ((0, jsx_runtime_1.jsx)(Skeleton_1.default, Object.assign({}, EventsSkeletonComponentProps, { EventSkeletonProps: EventSkeletonComponentProps }))) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: !events.length ? ((0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.noResults }, { children: general ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && react_core_1.UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? (0, jsx_runtime_1.jsx)(CreateEventButton_1.default, {}) : null })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.noEvents.title", defaultMessage: "ui.events.noEvents.title" }) }))] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && react_core_1.UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? (0, jsx_runtime_1.jsx)(CreateEventButton_1.default, {}) : null })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.noEvents.title.personal", defaultMessage: "ui.events.noEvents.title.personal" }) }))] })) }))) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ container: true, spacing: { xs: 2 }, className: classes.events }, GridContainerComponentProps, { children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [events.map((event) => ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.item }, GridItemComponentProps, { children: (0, jsx_runtime_1.jsx)(Event_1.default, Object.assign({ event: event, eventId: event.id }, EventComponentProps)) }), event.id))), authUserId && events.length % 2 !== 0 && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.itemSkeleton }, GridItemComponentProps, { children: (0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (0, jsx_runtime_1.jsx)(CreateEventButton_1.default, Object.assign({ variant: "outlined", color: "primary", size: "small" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.skeleton.action.add", defaultMessage: "ui.events.skeleton.action.add" }) })) })) }), 'skeleton-item'))] }) })), Boolean(next) && ((0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ color: "secondary", variant: "text", onClick: handleNext, className: classes.showMore }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.button.seeMore", defaultMessage: "ui.events.button.seeMore" }) })))] })) })) })] }));
|
|
227
227
|
/**
|
|
228
228
|
* Renders root object (if content availability community option is false and user is anonymous, component is hidden)
|
|
229
229
|
*/
|
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const material_1 = require("@mui/material");
|
|
6
|
-
const Skeleton_1 = tslib_1.__importDefault(require("@mui/material/Skeleton"));
|
|
7
|
-
const styles_1 = require("@mui/material/styles");
|
|
8
6
|
const Widget_1 = tslib_1.__importDefault(require("../Widget"));
|
|
9
7
|
const constants_1 = require("./constants");
|
|
10
8
|
const event_1 = require("../../types/event");
|
|
@@ -17,12 +15,12 @@ const classes = {
|
|
|
17
15
|
secondDivider: `${constants_1.PREFIX}-second-divider`,
|
|
18
16
|
actions: `${constants_1.PREFIX}-actions`
|
|
19
17
|
};
|
|
20
|
-
const Root = (0,
|
|
18
|
+
const Root = (0, material_1.styled)(Widget_1.default, {
|
|
21
19
|
name: constants_1.PREFIX,
|
|
22
20
|
slot: 'SkeletonRoot',
|
|
23
21
|
overridesResolver: (_props, styles) => styles.skeletonRoot
|
|
24
22
|
})(() => ({}));
|
|
25
23
|
function MyEventsWidgetSkeleton() {
|
|
26
|
-
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: classes.root }, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ padding: "12px 16px" }, { children: (0, jsx_runtime_1.jsx)(
|
|
24
|
+
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: classes.root }, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ padding: "12px 16px" }, { children: (0, jsx_runtime_1.jsx)(material_1.Skeleton, { animation: "wave", width: "141px", height: "33px" }) })), (0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, { template: event_1.SCEventTemplateType.DETAIL, elevation: 0, square: true, actions: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}) }), (0, jsx_runtime_1.jsxs)(material_1.CardActions, Object.assign({ className: classes.actions }, { children: [(0, jsx_runtime_1.jsx)(material_1.Skeleton, { animation: "wave", variant: "rounded", width: "14px", height: "14px" }), (0, jsx_runtime_1.jsx)(material_1.Skeleton, { animation: "wave", width: "52px", height: "20px" }), (0, jsx_runtime_1.jsx)(material_1.Skeleton, { animation: "wave", variant: "rounded", width: "14px", height: "14px" })] }))] })));
|
|
27
25
|
}
|
|
28
26
|
exports.default = MyEventsWidgetSkeleton;
|
|
@@ -243,8 +243,8 @@ export default function EventForm(inProps) {
|
|
|
243
243
|
if ('coverError' in _error) {
|
|
244
244
|
__errors = Object.assign(Object.assign({}, __errors), { ['coverError']: _jsx(FormattedMessage, { id: "ui.ui.eventForm.cover.error", defaultMessage: "ui.ui.eventForm.cover.error" }) });
|
|
245
245
|
}
|
|
246
|
-
if ('
|
|
247
|
-
__errors = Object.assign(Object.assign({}, __errors), { ['
|
|
246
|
+
if ('nameError' in _error || ('nonFieldErrorsError' in _error && _error['nonFieldErrorsError'].error === 'unique')) {
|
|
247
|
+
__errors = Object.assign(Object.assign({}, __errors), { ['nameError']: _jsx(FormattedMessage, { id: "ui.eventForm.name.error.unique", defaultMessage: "ui.eventForm.name.error.unique" }) });
|
|
248
248
|
}
|
|
249
249
|
setError(__errors);
|
|
250
250
|
setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: false })));
|
|
@@ -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
|
}
|
|
@@ -118,14 +118,14 @@ export default function Events(inProps) {
|
|
|
118
118
|
/**
|
|
119
119
|
* Fetches events list
|
|
120
120
|
*/
|
|
121
|
-
const fetchEvents = (
|
|
121
|
+
const fetchEvents = () => {
|
|
122
122
|
setLoading(true);
|
|
123
123
|
return http
|
|
124
124
|
.request({
|
|
125
125
|
url: endpoint.url({}),
|
|
126
126
|
method: endpoint.method,
|
|
127
127
|
params: Object.assign(Object.assign({}, endpointQueryParams), (general
|
|
128
|
-
? Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (
|
|
128
|
+
? Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (query && { search: query })), (dateSearch !== SCEventDateFilterType.ANY && { date_filter: dateSearch })), (location !== SCEventLocationFilterType.ANY && { location })), (showFollowed && { follows: showFollowed })), (showPastEvents && { date_filter: SCEventDateFilterType.PAST })) : Object.assign(Object.assign(Object.assign({ subscription_status: SCEventSubscriptionStatusType.GOING }, (location !== SCEventLocationFilterType.ANY && { location })), (showPastEvents && { past: showPastEvents })), (showMyEvents && { created_by: authUserId }))))
|
|
129
129
|
})
|
|
130
130
|
.then((res) => {
|
|
131
131
|
setEvents(res.data.results);
|
|
@@ -144,9 +144,9 @@ export default function Events(inProps) {
|
|
|
144
144
|
return;
|
|
145
145
|
}
|
|
146
146
|
else {
|
|
147
|
-
|
|
147
|
+
fetchEvents();
|
|
148
148
|
}
|
|
149
|
-
}, [contentAvailability, authUserId, dateSearch, location, showFollowed, showPastEvents, showMyEvents
|
|
149
|
+
}, [contentAvailability, authUserId, dateSearch, location, showFollowed, showPastEvents, showMyEvents]);
|
|
150
150
|
/**
|
|
151
151
|
* Subscriber for pubsub callback
|
|
152
152
|
*/
|
|
@@ -211,16 +211,16 @@ export default function Events(inProps) {
|
|
|
211
211
|
*/
|
|
212
212
|
const c = (_jsxs(_Fragment, { children: [showFilters && (_jsx(Grid, Object.assign({ container: true, className: classes.filters, gap: 2 }, { children: filters ? (filters) : !general ? (_jsxs(_Fragment, { children: [(events.length !== 0 || (events.length === 0 && showMyEvents)) && (_jsx(Grid, Object.assign({ item: true }, { children: _jsx(EventsChipRoot, { color: showMyEvents ? 'secondary' : 'default', variant: showMyEvents ? 'filled' : 'outlined', label: _jsx(FormattedMessage, { id: "ui.events.filterByCreatedByMe", defaultMessage: "ui.events.filterByCreatedByMe" }), onClick: () => setShowMyEvents(!showMyEvents),
|
|
213
213
|
// @ts-expect-error this is needed to use showFollowed into SCEvents
|
|
214
|
-
showFollowed: showMyEvents, deleteIcon: showMyEvents ? _jsx(Icon, { children: "close" }) : null, onDelete: showMyEvents ? handleDeleteClick : null, disabled: loading }) }))), _jsx(Grid, Object.assign({ item: true }, { children: _jsx(PastEventsFilter, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: loading }) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsx(LocationEventsFilter, { value: location,
|
|
214
|
+
showFollowed: showMyEvents, deleteIcon: showMyEvents ? _jsx(Icon, { children: "close" }) : null, onDelete: showMyEvents ? handleDeleteClick : null, disabled: loading }) }))), _jsx(Grid, Object.assign({ item: true }, { children: _jsx(PastEventsFilter, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: loading }) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsx(LocationEventsFilter, { value: location, disabled: loading, handleOnChange: handleOnChangeLocation }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(Grid, Object.assign({ item: true, xs: 12, md: 3 }, { children: _jsx(TextField, { className: classes.search, size: 'small', fullWidth: true, value: query, label: _jsx(FormattedMessage, { id: "ui.events.filterByName", defaultMessage: "ui.events.filterByName" }), variant: "outlined", onChange: handleOnChangeFilterName, disabled: loading, onKeyUp: (e) => {
|
|
215
215
|
e.preventDefault();
|
|
216
216
|
if (e.key === 'Enter') {
|
|
217
|
-
fetchEvents(
|
|
217
|
+
fetchEvents();
|
|
218
218
|
}
|
|
219
219
|
}, InputProps: {
|
|
220
|
-
endAdornment: (_jsx(InputAdornment, Object.assign({ position: "end" }, { children: isMobile ? (_jsx(IconButton, Object.assign({ onClick: () => fetchEvents(
|
|
221
|
-
} }) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsxs(FormControl, Object.assign({ fullWidth: true }, { children: [_jsx(InputLabel, { children: _jsx(FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }) }), _jsx(Select, Object.assign({ disabled: showPastEvents || loading
|
|
220
|
+
endAdornment: (_jsx(InputAdornment, Object.assign({ position: "end" }, { children: isMobile ? (_jsx(IconButton, Object.assign({ onClick: () => fetchEvents(), disabled: loading }, { children: _jsx(Icon, { children: "search" }) }))) : (_jsx(Button, { size: "small", variant: "contained", color: "secondary", onClick: () => fetchEvents(), endIcon: _jsx(Icon, { children: "search" }), disabled: loading })) })))
|
|
221
|
+
} }) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsxs(FormControl, Object.assign({ fullWidth: true }, { children: [_jsx(InputLabel, { children: _jsx(FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }) }), _jsx(Select, Object.assign({ disabled: showPastEvents || loading, size: 'small', label: _jsx(FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }), value: dateSearch, onChange: handleOnChangeTimeFrame, renderValue: (selected) => options.find((option) => option.value === selected).label }, { children: options.map((option) => (_jsxs(MenuItem, Object.assign({ value: option.value }, { children: [_jsx(Radio, { checked: dateSearch === option.value, value: option.value, name: "radio-button-select", inputProps: { 'aria-label': option.label } }), option.label] }), option.value))) }))] })) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsx(LocationEventsFilter, { value: location, disabled: loading, handleOnChange: handleOnChangeLocation }) })), authUserId && (_jsx(Grid, Object.assign({ item: true }, { children: _jsx(EventsChipRoot, { color: showFollowed ? 'secondary' : 'default', variant: showFollowed ? 'filled' : 'outlined', label: _jsx(FormattedMessage, { id: "ui.events.filterByFollowedInterest", defaultMessage: "ui.events.filterByFollowedInterest" }), onClick: handleChipClick,
|
|
222
222
|
// @ts-expect-error this is needed to use showFollowed into SCEvents
|
|
223
|
-
showFollowed: showFollowed, deleteIcon: showFollowed ? _jsx(Icon, { children: "close" }) : null, onDelete: showFollowed ? handleDeleteClick : null, disabled: loading
|
|
223
|
+
showFollowed: showFollowed, deleteIcon: showFollowed ? _jsx(Icon, { children: "close" }) : null, onDelete: showFollowed ? handleDeleteClick : null, disabled: loading }) }))), _jsx(Grid, Object.assign({ item: true }, { children: _jsx(PastEventsFilter, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: dateSearch !== SCEventDateFilterType.ANY || loading }) }))] })) }))), _jsx(_Fragment, { children: loading ? (_jsx(Skeleton, Object.assign({}, EventsSkeletonComponentProps, { EventSkeletonProps: EventSkeletonComponentProps }))) : (_jsx(_Fragment, { children: !events.length ? (_jsx(Box, Object.assign({ className: classes.noResults }, { children: general ? (_jsxs(_Fragment, { children: [_jsx(EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? _jsx(CreateEventButton, {}) : null })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.events.noEvents.title", defaultMessage: "ui.events.noEvents.title" }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? _jsx(CreateEventButton, {}) : null })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.events.noEvents.title.personal", defaultMessage: "ui.events.noEvents.title.personal" }) }))] })) }))) : (_jsxs(_Fragment, { children: [_jsx(Grid, Object.assign({ container: true, spacing: { xs: 2 }, className: classes.events }, GridContainerComponentProps, { children: _jsxs(_Fragment, { children: [events.map((event) => (_jsx(Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.item }, GridItemComponentProps, { children: _jsx(Event, Object.assign({ event: event, eventId: event.id }, EventComponentProps)) }), event.id))), authUserId && events.length % 2 !== 0 && (_jsx(Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.itemSkeleton }, GridItemComponentProps, { children: _jsx(EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: _jsx(CreateEventButton, Object.assign({ variant: "outlined", color: "primary", size: "small" }, { children: _jsx(FormattedMessage, { id: "ui.events.skeleton.action.add", defaultMessage: "ui.events.skeleton.action.add" }) })) })) }), 'skeleton-item'))] }) })), Boolean(next) && (_jsx(Button, Object.assign({ color: "secondary", variant: "text", onClick: handleNext, className: classes.showMore }, { children: _jsx(FormattedMessage, { id: "ui.events.button.seeMore", defaultMessage: "ui.events.button.seeMore" }) })))] })) })) })] }));
|
|
224
224
|
/**
|
|
225
225
|
* Renders root object (if content availability community option is false and user is anonymous, component is hidden)
|
|
226
226
|
*/
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, CardActions } from '@mui/material';
|
|
3
|
-
import Skeleton from '@mui/material/Skeleton';
|
|
4
|
-
import { styled } from '@mui/material/styles';
|
|
2
|
+
import { Box, CardActions, Skeleton, styled } from '@mui/material';
|
|
5
3
|
import Widget from '../Widget';
|
|
6
4
|
import { PREFIX } from './constants';
|
|
7
5
|
import { SCEventTemplateType } from '../../types/event';
|