@selfcommunity/react-ui 0.11.0-alpha.30 → 0.11.0-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.
- package/lib/cjs/components/EventMembersWidget/EventMembersWidget.js +11 -11
- package/lib/cjs/components/EventMembersWidget/TabContentComponent.js +8 -8
- package/lib/cjs/components/EventMembersWidget/types.d.ts +4 -5
- package/lib/cjs/components/EventMembersWidget/types.js +7 -7
- package/lib/cjs/components/GroupInvitedWidget/GroupInvitedWidget.js +1 -1
- package/lib/cjs/components/GroupRequestsWidget/GroupRequestsWidget.js +1 -1
- package/lib/esm/components/EventMembersWidget/EventMembersWidget.js +12 -12
- package/lib/esm/components/EventMembersWidget/TabContentComponent.js +9 -9
- package/lib/esm/components/EventMembersWidget/types.d.ts +4 -5
- package/lib/esm/components/EventMembersWidget/types.js +6 -6
- package/lib/esm/components/GroupInvitedWidget/GroupInvitedWidget.js +1 -1
- package/lib/esm/components/GroupRequestsWidget/GroupRequestsWidget.js +1 -1
- package/lib/umd/react-ui.js +1 -1
- package/package.json +4 -4
|
@@ -66,7 +66,7 @@ function EventMembersWidget(inProps) {
|
|
|
66
66
|
const [invitedCount, setInvitedCount] = (0, react_1.useState)(invited.count);
|
|
67
67
|
const [requestsCount, setRequestsCount] = (0, react_1.useState)(requests.count);
|
|
68
68
|
const [requestsUsers, setRequestsUsers] = (0, react_1.useState)(requests.results);
|
|
69
|
-
const [tabValue, setTabValue] = (0, react_1.useState)(types_1.
|
|
69
|
+
const [tabValue, setTabValue] = (0, react_1.useState)(types_1.TabContentType.PARTICIPANTS);
|
|
70
70
|
const [refresh, setRefresh] = (0, react_1.useState)(null);
|
|
71
71
|
// CONTEXT
|
|
72
72
|
const scUserContext = (0, react_core_1.useSCUser)();
|
|
@@ -76,11 +76,11 @@ function EventMembersWidget(inProps) {
|
|
|
76
76
|
const hasAllow = (0, react_1.useMemo)(() => { var _a; return ((_a = scUserContext.user) === null || _a === void 0 ? void 0 : _a.id) === (scEvent === null || scEvent === void 0 ? void 0 : scEvent.managed_by.id); }, [scUserContext, scEvent]);
|
|
77
77
|
const title = (0, react_1.useMemo)(() => {
|
|
78
78
|
switch (tabValue) {
|
|
79
|
-
case types_1.
|
|
79
|
+
case types_1.TabContentType.REQUESTS:
|
|
80
80
|
return 'ui.eventMembersWidget.requests';
|
|
81
|
-
case types_1.
|
|
81
|
+
case types_1.TabContentType.INVITED:
|
|
82
82
|
return 'ui.eventMembersWidget.invited';
|
|
83
|
-
case types_1.
|
|
83
|
+
case types_1.TabContentType.PARTICIPANTS:
|
|
84
84
|
default:
|
|
85
85
|
return 'ui.eventMembersWidget.participants';
|
|
86
86
|
}
|
|
@@ -134,11 +134,11 @@ function EventMembersWidget(inProps) {
|
|
|
134
134
|
let _t;
|
|
135
135
|
if (scUserContext.user && scEvent) {
|
|
136
136
|
_t = setTimeout(() => {
|
|
137
|
-
if (refresh === types_1.
|
|
137
|
+
if (refresh === types_1.TabContentType.PARTICIPANTS) {
|
|
138
138
|
_initParticipants();
|
|
139
139
|
setRefresh(null);
|
|
140
140
|
}
|
|
141
|
-
else if (refresh === types_1.
|
|
141
|
+
else if (refresh === types_1.TabContentType.INVITED) {
|
|
142
142
|
_initInvited();
|
|
143
143
|
setRefresh(null);
|
|
144
144
|
}
|
|
@@ -165,10 +165,10 @@ function EventMembersWidget(inProps) {
|
|
|
165
165
|
setTabValue(newTabValue);
|
|
166
166
|
}, [setTabValue]);
|
|
167
167
|
const handleRefresh = (0, react_1.useCallback)((_tabValue) => {
|
|
168
|
-
if (_tabValue === types_1.
|
|
168
|
+
if (_tabValue === types_1.TabContentType.PARTICIPANTS) {
|
|
169
169
|
dispatchParticipants({ type: widget_1.actionWidgetTypes.RESET });
|
|
170
170
|
}
|
|
171
|
-
else if (_tabValue === types_1.
|
|
171
|
+
else if (_tabValue === types_1.TabContentType.INVITED) {
|
|
172
172
|
dispatchInvited({ type: widget_1.actionWidgetTypes.RESET });
|
|
173
173
|
}
|
|
174
174
|
setRefresh(_tabValue);
|
|
@@ -179,13 +179,13 @@ function EventMembersWidget(inProps) {
|
|
|
179
179
|
if (!scEvent ||
|
|
180
180
|
!participants.initialized ||
|
|
181
181
|
(scEvent && ((eventId !== undefined && scEvent.id !== eventId) || (event && scEvent.id !== event.id))) ||
|
|
182
|
-
(tabValue === types_1.
|
|
182
|
+
(tabValue === types_1.TabContentType.PARTICIPANTS && participants.isLoadingNext && !participants.initialized)) {
|
|
183
183
|
return (0, jsx_runtime_1.jsx)(Skeleton_1.default, {});
|
|
184
184
|
}
|
|
185
|
-
return ((0, jsx_runtime_1.jsx)(Root, Object.assign({ className: classes.root }, rest, { children: (0, jsx_runtime_1.jsxs)(material_1.CardContent, Object.assign({ className: classes.content }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h5", className: classes.title }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: title, defaultMessage: title }) })), (0, jsx_runtime_1.jsxs)(lab_1.TabContext, Object.assign({ value: tabValue }, { children: [(0, jsx_runtime_1.jsxs)(lab_1.TabList, Object.assign({ className: classes.tabsWrapper, onChange: handleTabChange, textColor: "primary", indicatorColor: "primary", variant: "fullWidth" }, { children: [(0, jsx_runtime_1.jsx)(material_1.Tab, { label: (0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h3" }, { children: participantsCount })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "subtitle2" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.participants", defaultMessage: "ui.eventMembersWidget.participants" }) }))] })), value: types_1.
|
|
185
|
+
return ((0, jsx_runtime_1.jsx)(Root, Object.assign({ className: classes.root }, rest, { children: (0, jsx_runtime_1.jsxs)(material_1.CardContent, Object.assign({ className: classes.content }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h5", className: classes.title }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: title, defaultMessage: title }) })), (0, jsx_runtime_1.jsxs)(lab_1.TabContext, Object.assign({ value: tabValue }, { children: [(0, jsx_runtime_1.jsxs)(lab_1.TabList, Object.assign({ className: classes.tabsWrapper, onChange: handleTabChange, textColor: "primary", indicatorColor: "primary", variant: "fullWidth" }, { children: [(0, jsx_runtime_1.jsx)(material_1.Tab, { label: (0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h3" }, { children: participantsCount })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "subtitle2" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.participants", defaultMessage: "ui.eventMembersWidget.participants" }) }))] })), value: types_1.TabContentType.PARTICIPANTS }), hasAllow && ((0, jsx_runtime_1.jsx)(material_1.Tab, { label: (0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h3" }, { children: invitedCount })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "subtitle2" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.invited", defaultMessage: "ui.eventMembersWidget.invited" }) }))] })), value: types_1.TabContentType.INVITED })), hasAllow && ((0, jsx_runtime_1.jsx)(material_1.Tab, { label: (0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h3" }, { children: requestsCount })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "subtitle2" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventMembersWidget.requests", defaultMessage: "ui.eventMembersWidget.requests" }) }))] })), value: types_1.TabContentType.REQUESTS }))] })), (0, jsx_runtime_1.jsx)(lab_1.TabPanel, Object.assign({ value: types_1.TabContentType.PARTICIPANTS, className: classes.tabPanel }, { children: (0, jsx_runtime_1.jsx)(TabContentComponent_1.default, { tabValue: types_1.TabContentType.PARTICIPANTS, state: participants, dispatch: dispatchParticipants, userProps: userProps, dialogProps: dialogProps, handleRefresh: handleRefresh }) })), hasAllow && ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, Object.assign({ value: types_1.TabContentType.INVITED, className: classes.tabPanel }, { children: (0, jsx_runtime_1.jsx)(TabContentComponent_1.default, { tabValue: types_1.TabContentType.INVITED, state: invited, dispatch: dispatchInvited, userProps: userProps, dialogProps: dialogProps, actionProps: {
|
|
186
186
|
scEvent,
|
|
187
187
|
setCount: setInvitedCount
|
|
188
|
-
}, handleRefresh: handleRefresh }) }))), hasAllow && ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, Object.assign({ value: types_1.
|
|
188
|
+
}, handleRefresh: handleRefresh }) }))), hasAllow && ((0, jsx_runtime_1.jsx)(lab_1.TabPanel, Object.assign({ value: types_1.TabContentType.REQUESTS, className: classes.tabPanel }, { children: (0, jsx_runtime_1.jsx)(TabContentComponent_1.default, { tabValue: types_1.TabContentType.REQUESTS, state: requests, dispatch: dispatchRequests, userProps: userProps, dialogProps: dialogProps, actionProps: {
|
|
189
189
|
scEvent,
|
|
190
190
|
count: requestsCount,
|
|
191
191
|
setCount: setRequestsCount,
|
|
@@ -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.
|
|
46
|
+
const users = (0, react_1.useMemo)(() => (tabValue === types_1.TabContentType.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);
|
|
@@ -80,13 +80,13 @@ function TabContentComponent(props) {
|
|
|
80
80
|
setOpenDialog((prev) => !prev);
|
|
81
81
|
}, [setOpenDialog]);
|
|
82
82
|
const handleToggleMember = (0, react_1.useCallback)(() => {
|
|
83
|
-
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(types_1.
|
|
83
|
+
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(types_1.TabContentType.PARTICIPANTS);
|
|
84
84
|
}, [handleRefresh]);
|
|
85
85
|
const handleInviteMember = (0, react_1.useCallback)(() => {
|
|
86
|
-
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(types_1.
|
|
86
|
+
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(types_1.TabContentType.INVITED);
|
|
87
87
|
}, [handleRefresh]);
|
|
88
88
|
const getActionsComponent = (0, react_1.useCallback)((userId) => {
|
|
89
|
-
if (tabValue === types_1.
|
|
89
|
+
if (tabValue === types_1.TabContentType.INVITED && actionProps) {
|
|
90
90
|
const _handleInvitations = (invited) => {
|
|
91
91
|
var _a, _b;
|
|
92
92
|
if (invited) {
|
|
@@ -98,7 +98,7 @@ function TabContentComponent(props) {
|
|
|
98
98
|
};
|
|
99
99
|
return (0, jsx_runtime_1.jsx)(InviteUserEventButton_1.default, { event: actionProps.scEvent, userId: userId, handleInvitations: _handleInvitations });
|
|
100
100
|
}
|
|
101
|
-
else if (tabValue === types_1.
|
|
101
|
+
else if (tabValue === types_1.TabContentType.REQUESTS && actionProps) {
|
|
102
102
|
const handleConfirm = (id) => {
|
|
103
103
|
if (id) {
|
|
104
104
|
actionProps.setCount((prev) => prev - 1);
|
|
@@ -119,10 +119,10 @@ function TabContentComponent(props) {
|
|
|
119
119
|
}
|
|
120
120
|
return undefined;
|
|
121
121
|
}, [tabValue, actionProps]);
|
|
122
|
-
if (tabValue === types_1.
|
|
122
|
+
if (tabValue === types_1.TabContentType.PARTICIPANTS && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.count) === 0) {
|
|
123
123
|
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.noParticipants", defaultMessage: "ui.eventMembersWidget.noParticipants" }) })));
|
|
124
124
|
}
|
|
125
|
-
else if (tabValue === types_1.
|
|
125
|
+
else if (tabValue === types_1.TabContentType.INVITED && state.count === 0 && actionProps) {
|
|
126
126
|
const date = actionProps.scEvent.end_date || actionProps.scEvent.start_date;
|
|
127
127
|
const disabled = new Date(date).getTime() < new Date().getTime();
|
|
128
128
|
const handleInvitations = (invited) => {
|
|
@@ -132,7 +132,7 @@ function TabContentComponent(props) {
|
|
|
132
132
|
};
|
|
133
133
|
return ((0, jsx_runtime_1.jsx)(EventInviteButton_1.default, { event: actionProps.scEvent, className: classes.eventButton, handleInvitations: handleInvitations, disabled: disabled }));
|
|
134
134
|
}
|
|
135
|
-
else if (tabValue === types_1.
|
|
135
|
+
else if (tabValue === types_1.TabContentType.REQUESTS && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.count) === 0) {
|
|
136
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" }) })));
|
|
137
137
|
}
|
|
138
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: true }, 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))) }) })) })))] }));
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
REQUESTS = "3"
|
|
1
|
+
export declare enum TabContentType {
|
|
2
|
+
PARTICIPANTS = "participants",
|
|
3
|
+
INVITED = "invited",
|
|
4
|
+
REQUESTS = "requests"
|
|
6
5
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
})(
|
|
3
|
+
exports.TabContentType = void 0;
|
|
4
|
+
var TabContentType;
|
|
5
|
+
(function (TabContentType) {
|
|
6
|
+
TabContentType["PARTICIPANTS"] = "participants";
|
|
7
|
+
TabContentType["INVITED"] = "invited";
|
|
8
|
+
TabContentType["REQUESTS"] = "requests";
|
|
9
|
+
})(TabContentType = exports.TabContentType || (exports.TabContentType = {}));
|
|
@@ -195,7 +195,7 @@ function GroupInvitedWidget(inProps) {
|
|
|
195
195
|
setOpenDialog((prev) => !prev);
|
|
196
196
|
};
|
|
197
197
|
// RENDER
|
|
198
|
-
if ((!state.count && state.initialized) || !contentAvailability
|
|
198
|
+
if ((!state.count && state.initialized) || (!contentAvailability && !scUserContext.user) || !scGroup || !isGroupAdmin) {
|
|
199
199
|
return (0, jsx_runtime_1.jsx)(HiddenPlaceholder_1.default, {});
|
|
200
200
|
}
|
|
201
201
|
if (!state.initialized) {
|
|
@@ -181,7 +181,7 @@ function GroupRequestsWidget(inProps) {
|
|
|
181
181
|
onSubscribeActon && onSubscribeActon(user);
|
|
182
182
|
}, [dispatch, state.count, state.results, onSubscribeActon]);
|
|
183
183
|
// RENDER
|
|
184
|
-
if ((!state.count && state.initialized) || !contentAvailability
|
|
184
|
+
if ((!state.count && state.initialized) || (!contentAvailability && !scUserContext.user) || !scGroup || !isGroupAdmin) {
|
|
185
185
|
return (0, jsx_runtime_1.jsx)(HiddenPlaceholder_1.default, {});
|
|
186
186
|
}
|
|
187
187
|
if (!state.initialized) {
|
|
@@ -16,7 +16,7 @@ import Widget from '../Widget';
|
|
|
16
16
|
import { PREFIX } from './constants';
|
|
17
17
|
import Skeleton from './Skeleton';
|
|
18
18
|
import TabContentComponent from './TabContentComponent';
|
|
19
|
-
import {
|
|
19
|
+
import { TabContentType } from './types';
|
|
20
20
|
import HiddenPlaceholder from '../../shared/HiddenPlaceholder';
|
|
21
21
|
const classes = {
|
|
22
22
|
root: `${PREFIX}-root`,
|
|
@@ -64,7 +64,7 @@ export default function EventMembersWidget(inProps) {
|
|
|
64
64
|
const [invitedCount, setInvitedCount] = useState(invited.count);
|
|
65
65
|
const [requestsCount, setRequestsCount] = useState(requests.count);
|
|
66
66
|
const [requestsUsers, setRequestsUsers] = useState(requests.results);
|
|
67
|
-
const [tabValue, setTabValue] = useState(
|
|
67
|
+
const [tabValue, setTabValue] = useState(TabContentType.PARTICIPANTS);
|
|
68
68
|
const [refresh, setRefresh] = useState(null);
|
|
69
69
|
// CONTEXT
|
|
70
70
|
const scUserContext = useSCUser();
|
|
@@ -74,11 +74,11 @@ export default function EventMembersWidget(inProps) {
|
|
|
74
74
|
const hasAllow = useMemo(() => { var _a; return ((_a = scUserContext.user) === null || _a === void 0 ? void 0 : _a.id) === (scEvent === null || scEvent === void 0 ? void 0 : scEvent.managed_by.id); }, [scUserContext, scEvent]);
|
|
75
75
|
const title = useMemo(() => {
|
|
76
76
|
switch (tabValue) {
|
|
77
|
-
case
|
|
77
|
+
case TabContentType.REQUESTS:
|
|
78
78
|
return 'ui.eventMembersWidget.requests';
|
|
79
|
-
case
|
|
79
|
+
case TabContentType.INVITED:
|
|
80
80
|
return 'ui.eventMembersWidget.invited';
|
|
81
|
-
case
|
|
81
|
+
case TabContentType.PARTICIPANTS:
|
|
82
82
|
default:
|
|
83
83
|
return 'ui.eventMembersWidget.participants';
|
|
84
84
|
}
|
|
@@ -132,11 +132,11 @@ export default function EventMembersWidget(inProps) {
|
|
|
132
132
|
let _t;
|
|
133
133
|
if (scUserContext.user && scEvent) {
|
|
134
134
|
_t = setTimeout(() => {
|
|
135
|
-
if (refresh ===
|
|
135
|
+
if (refresh === TabContentType.PARTICIPANTS) {
|
|
136
136
|
_initParticipants();
|
|
137
137
|
setRefresh(null);
|
|
138
138
|
}
|
|
139
|
-
else if (refresh ===
|
|
139
|
+
else if (refresh === TabContentType.INVITED) {
|
|
140
140
|
_initInvited();
|
|
141
141
|
setRefresh(null);
|
|
142
142
|
}
|
|
@@ -163,10 +163,10 @@ export default function EventMembersWidget(inProps) {
|
|
|
163
163
|
setTabValue(newTabValue);
|
|
164
164
|
}, [setTabValue]);
|
|
165
165
|
const handleRefresh = useCallback((_tabValue) => {
|
|
166
|
-
if (_tabValue ===
|
|
166
|
+
if (_tabValue === TabContentType.PARTICIPANTS) {
|
|
167
167
|
dispatchParticipants({ type: actionWidgetTypes.RESET });
|
|
168
168
|
}
|
|
169
|
-
else if (_tabValue ===
|
|
169
|
+
else if (_tabValue === TabContentType.INVITED) {
|
|
170
170
|
dispatchInvited({ type: actionWidgetTypes.RESET });
|
|
171
171
|
}
|
|
172
172
|
setRefresh(_tabValue);
|
|
@@ -177,13 +177,13 @@ export default function EventMembersWidget(inProps) {
|
|
|
177
177
|
if (!scEvent ||
|
|
178
178
|
!participants.initialized ||
|
|
179
179
|
(scEvent && ((eventId !== undefined && scEvent.id !== eventId) || (event && scEvent.id !== event.id))) ||
|
|
180
|
-
(tabValue ===
|
|
180
|
+
(tabValue === TabContentType.PARTICIPANTS && participants.isLoadingNext && !participants.initialized)) {
|
|
181
181
|
return _jsx(Skeleton, {});
|
|
182
182
|
}
|
|
183
|
-
return (_jsx(Root, Object.assign({ className: classes.root }, rest, { children: _jsxs(CardContent, Object.assign({ className: classes.content }, { children: [_jsx(Typography, Object.assign({ variant: "h5", className: classes.title }, { children: _jsx(FormattedMessage, { id: title, defaultMessage: title }) })), _jsxs(TabContext, Object.assign({ value: tabValue }, { children: [_jsxs(TabList, Object.assign({ className: classes.tabsWrapper, onChange: handleTabChange, textColor: "primary", indicatorColor: "primary", variant: "fullWidth" }, { children: [_jsx(Tab, { label: _jsxs(Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [_jsx(Typography, Object.assign({ variant: "h3" }, { children: participantsCount })), _jsx(Typography, Object.assign({ variant: "subtitle2" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.participants", defaultMessage: "ui.eventMembersWidget.participants" }) }))] })), value:
|
|
183
|
+
return (_jsx(Root, Object.assign({ className: classes.root }, rest, { children: _jsxs(CardContent, Object.assign({ className: classes.content }, { children: [_jsx(Typography, Object.assign({ variant: "h5", className: classes.title }, { children: _jsx(FormattedMessage, { id: title, defaultMessage: title }) })), _jsxs(TabContext, Object.assign({ value: tabValue }, { children: [_jsxs(TabList, Object.assign({ className: classes.tabsWrapper, onChange: handleTabChange, textColor: "primary", indicatorColor: "primary", variant: "fullWidth" }, { children: [_jsx(Tab, { label: _jsxs(Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [_jsx(Typography, Object.assign({ variant: "h3" }, { children: participantsCount })), _jsx(Typography, Object.assign({ variant: "subtitle2" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.participants", defaultMessage: "ui.eventMembersWidget.participants" }) }))] })), value: TabContentType.PARTICIPANTS }), hasAllow && (_jsx(Tab, { label: _jsxs(Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [_jsx(Typography, Object.assign({ variant: "h3" }, { children: invitedCount })), _jsx(Typography, Object.assign({ variant: "subtitle2" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.invited", defaultMessage: "ui.eventMembersWidget.invited" }) }))] })), value: TabContentType.INVITED })), hasAllow && (_jsx(Tab, { label: _jsxs(Stack, Object.assign({ className: classes.tabLabelWrapper }, { children: [_jsx(Typography, Object.assign({ variant: "h3" }, { children: requestsCount })), _jsx(Typography, Object.assign({ variant: "subtitle2" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.requests", defaultMessage: "ui.eventMembersWidget.requests" }) }))] })), value: TabContentType.REQUESTS }))] })), _jsx(TabPanel, Object.assign({ value: TabContentType.PARTICIPANTS, className: classes.tabPanel }, { children: _jsx(TabContentComponent, { tabValue: TabContentType.PARTICIPANTS, state: participants, dispatch: dispatchParticipants, userProps: userProps, dialogProps: dialogProps, handleRefresh: handleRefresh }) })), hasAllow && (_jsx(TabPanel, Object.assign({ value: TabContentType.INVITED, className: classes.tabPanel }, { children: _jsx(TabContentComponent, { tabValue: TabContentType.INVITED, state: invited, dispatch: dispatchInvited, userProps: userProps, dialogProps: dialogProps, actionProps: {
|
|
184
184
|
scEvent,
|
|
185
185
|
setCount: setInvitedCount
|
|
186
|
-
}, handleRefresh: handleRefresh }) }))), hasAllow && (_jsx(TabPanel, Object.assign({ value:
|
|
186
|
+
}, handleRefresh: handleRefresh }) }))), hasAllow && (_jsx(TabPanel, Object.assign({ value: TabContentType.REQUESTS, className: classes.tabPanel }, { children: _jsx(TabContentComponent, { tabValue: TabContentType.REQUESTS, state: requests, dispatch: dispatchRequests, userProps: userProps, dialogProps: dialogProps, actionProps: {
|
|
187
187
|
scEvent,
|
|
188
188
|
count: requestsCount,
|
|
189
189
|
setCount: setRequestsCount,
|
|
@@ -16,7 +16,7 @@ import EventInviteButton from '../EventInviteButton';
|
|
|
16
16
|
import InviteUserEventButton from '../InviteUserEventButton';
|
|
17
17
|
import User, { UserSkeleton } from '../User';
|
|
18
18
|
import { PREFIX } from './constants';
|
|
19
|
-
import {
|
|
19
|
+
import { TabContentType } from './types';
|
|
20
20
|
const classes = {
|
|
21
21
|
actionButton: `${PREFIX}-action-button`,
|
|
22
22
|
eventButton: `${PREFIX}-event-button`,
|
|
@@ -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 ===
|
|
43
|
+
const users = useMemo(() => (tabValue === TabContentType.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);
|
|
@@ -77,13 +77,13 @@ export default function TabContentComponent(props) {
|
|
|
77
77
|
setOpenDialog((prev) => !prev);
|
|
78
78
|
}, [setOpenDialog]);
|
|
79
79
|
const handleToggleMember = useCallback(() => {
|
|
80
|
-
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(
|
|
80
|
+
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(TabContentType.PARTICIPANTS);
|
|
81
81
|
}, [handleRefresh]);
|
|
82
82
|
const handleInviteMember = useCallback(() => {
|
|
83
|
-
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(
|
|
83
|
+
handleRefresh === null || handleRefresh === void 0 ? void 0 : handleRefresh(TabContentType.INVITED);
|
|
84
84
|
}, [handleRefresh]);
|
|
85
85
|
const getActionsComponent = useCallback((userId) => {
|
|
86
|
-
if (tabValue ===
|
|
86
|
+
if (tabValue === TabContentType.INVITED && actionProps) {
|
|
87
87
|
const _handleInvitations = (invited) => {
|
|
88
88
|
var _a, _b;
|
|
89
89
|
if (invited) {
|
|
@@ -95,7 +95,7 @@ export default function TabContentComponent(props) {
|
|
|
95
95
|
};
|
|
96
96
|
return _jsx(InviteUserEventButton, { event: actionProps.scEvent, userId: userId, handleInvitations: _handleInvitations });
|
|
97
97
|
}
|
|
98
|
-
else if (tabValue ===
|
|
98
|
+
else if (tabValue === TabContentType.REQUESTS && actionProps) {
|
|
99
99
|
const handleConfirm = (id) => {
|
|
100
100
|
if (id) {
|
|
101
101
|
actionProps.setCount((prev) => prev - 1);
|
|
@@ -116,10 +116,10 @@ export default function TabContentComponent(props) {
|
|
|
116
116
|
}
|
|
117
117
|
return undefined;
|
|
118
118
|
}, [tabValue, actionProps]);
|
|
119
|
-
if (tabValue ===
|
|
119
|
+
if (tabValue === TabContentType.PARTICIPANTS && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.count) === 0) {
|
|
120
120
|
return (_jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.noParticipants", defaultMessage: "ui.eventMembersWidget.noParticipants" }) })));
|
|
121
121
|
}
|
|
122
|
-
else if (tabValue ===
|
|
122
|
+
else if (tabValue === TabContentType.INVITED && state.count === 0 && actionProps) {
|
|
123
123
|
const date = actionProps.scEvent.end_date || actionProps.scEvent.start_date;
|
|
124
124
|
const disabled = new Date(date).getTime() < new Date().getTime();
|
|
125
125
|
const handleInvitations = (invited) => {
|
|
@@ -129,7 +129,7 @@ export default function TabContentComponent(props) {
|
|
|
129
129
|
};
|
|
130
130
|
return (_jsx(EventInviteButton, { event: actionProps.scEvent, className: classes.eventButton, handleInvitations: handleInvitations, disabled: disabled }));
|
|
131
131
|
}
|
|
132
|
-
else if (tabValue ===
|
|
132
|
+
else if (tabValue === TabContentType.REQUESTS && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.count) === 0) {
|
|
133
133
|
return (_jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventMembersWidget.noOtherRequests", defaultMessage: "ui.eventMembersWidget.noOtherRequests" }) })));
|
|
134
134
|
}
|
|
135
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: true }, 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))) }) })) })))] }));
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
REQUESTS = "3"
|
|
1
|
+
export declare enum TabContentType {
|
|
2
|
+
PARTICIPANTS = "participants",
|
|
3
|
+
INVITED = "invited",
|
|
4
|
+
REQUESTS = "requests"
|
|
6
5
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export var
|
|
2
|
-
(function (
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
})(
|
|
1
|
+
export var TabContentType;
|
|
2
|
+
(function (TabContentType) {
|
|
3
|
+
TabContentType["PARTICIPANTS"] = "participants";
|
|
4
|
+
TabContentType["INVITED"] = "invited";
|
|
5
|
+
TabContentType["REQUESTS"] = "requests";
|
|
6
|
+
})(TabContentType || (TabContentType = {}));
|
|
@@ -193,7 +193,7 @@ export default function GroupInvitedWidget(inProps) {
|
|
|
193
193
|
setOpenDialog((prev) => !prev);
|
|
194
194
|
};
|
|
195
195
|
// RENDER
|
|
196
|
-
if ((!state.count && state.initialized) || !contentAvailability
|
|
196
|
+
if ((!state.count && state.initialized) || (!contentAvailability && !scUserContext.user) || !scGroup || !isGroupAdmin) {
|
|
197
197
|
return _jsx(HiddenPlaceholder, {});
|
|
198
198
|
}
|
|
199
199
|
if (!state.initialized) {
|
|
@@ -179,7 +179,7 @@ export default function GroupRequestsWidget(inProps) {
|
|
|
179
179
|
onSubscribeActon && onSubscribeActon(user);
|
|
180
180
|
}, [dispatch, state.count, state.results, onSubscribeActon]);
|
|
181
181
|
// RENDER
|
|
182
|
-
if ((!state.count && state.initialized) || !contentAvailability
|
|
182
|
+
if ((!state.count && state.initialized) || (!contentAvailability && !scUserContext.user) || !scGroup || !isGroupAdmin) {
|
|
183
183
|
return _jsx(HiddenPlaceholder, {});
|
|
184
184
|
}
|
|
185
185
|
if (!state.initialized) {
|