@selfcommunity/react-ui 0.10.5-alpha.6 → 0.10.5-alpha.8
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/EventAddress.js +7 -12
- package/lib/cjs/components/EventForm/EventForm.js +3 -7
- package/lib/cjs/shared/EventInfoDetails/index.js +8 -1
- package/lib/esm/components/EventForm/EventAddress.js +7 -12
- package/lib/esm/components/EventForm/EventForm.js +3 -7
- package/lib/esm/shared/EventInfoDetails/index.js +10 -3
- package/lib/umd/react-ui.js +1 -1
- package/package.json +2 -2
|
@@ -41,7 +41,7 @@ const Root = (0, styles_1.styled)(material_1.Box, {
|
|
|
41
41
|
slot: 'EventAddressRoot'
|
|
42
42
|
})(() => ({}));
|
|
43
43
|
function EventAddress(inProps) {
|
|
44
|
-
var _a
|
|
44
|
+
var _a;
|
|
45
45
|
//PROPS
|
|
46
46
|
const props = (0, system_1.useThemeProps)({
|
|
47
47
|
props: inProps,
|
|
@@ -77,21 +77,16 @@ function EventAddress(inProps) {
|
|
|
77
77
|
features.includes(types_1.SCFeatureName.LIVE_STREAM) &&
|
|
78
78
|
react_core_1.SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED in preferences &&
|
|
79
79
|
preferences[react_core_1.SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED].value, [preferences, features]);
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
return (!isFreeTrialTier || (isFreeTrialTier && (scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) && (scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user.id) === 1)) &&
|
|
83
|
-
(((_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream) || event.live_stream);
|
|
84
|
-
}, [(_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission, event]);
|
|
85
|
-
const isInPersonTabActive = (0, react_1.useMemo)(() => locations.includes(types_1.SCEventLocationType.PERSON) || event.location === types_1.SCEventLocationType.PERSON, [locations]);
|
|
86
|
-
const isOnlineTabActive = (0, react_1.useMemo)(() => locations.includes(types_1.SCEventLocationType.ONLINE) || event.location === types_1.SCEventLocationType.ONLINE, [locations]);
|
|
80
|
+
const isInPersonTabActive = (0, react_1.useMemo)(() => locations.includes(types_1.SCEventLocationType.PERSON) || event.location === types_1.SCEventLocationType.PERSON, [locations, event]);
|
|
81
|
+
const isOnlineTabActive = (0, react_1.useMemo)(() => locations.includes(types_1.SCEventLocationType.ONLINE) || event.location === types_1.SCEventLocationType.ONLINE, [locations, event]);
|
|
87
82
|
const isLiveTabActive = (0, react_1.useMemo)(() => {
|
|
88
83
|
var _a, _b;
|
|
89
84
|
return (liveStreamEnabled &&
|
|
90
85
|
locations.includes(types_1.SCEventLocationType.LIVESTREAM) &&
|
|
91
86
|
!isFreeTrialTier /* || (isFreeTrialTier && scUserContext?.user && scUserContext?.user.id === 1)*/ &&
|
|
92
87
|
((_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream)) ||
|
|
93
|
-
event.live_stream;
|
|
94
|
-
}, [liveStreamEnabled, (
|
|
88
|
+
(event.live_stream && event.live_stream.created_at);
|
|
89
|
+
}, [liveStreamEnabled, (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission, event]);
|
|
95
90
|
// HOOKS
|
|
96
91
|
const { isLoaded, geocodingApiKey } = (0, react_core_2.useSCGoogleApiLoader)();
|
|
97
92
|
// HANDLERS
|
|
@@ -160,8 +155,8 @@ function EventAddress(inProps) {
|
|
|
160
155
|
if (!isInPersonTabActive && !isOnlineTabActive && !isLiveTabActive) {
|
|
161
156
|
return null;
|
|
162
157
|
}
|
|
163
|
-
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Tabs, Object.assign({ className: classes.tabs, value: location, onChange: handleChange, indicatorColor: "secondary", textColor: "secondary", variant: "fullWidth" }, { children: [isInPersonTabActive && ((0, jsx_runtime_1.jsx)(material_1.Tab, { value: types_1.SCEventLocationType.PERSON, classes: { root: classes.tab }, icon: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "add_location_alt" }), iconPosition: "start", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.live.label", defaultMessage: "ui.eventForm.address.live.label" }) })), isOnlineTabActive && ((0, jsx_runtime_1.jsx)(material_1.Tab, { value: types_1.SCEventLocationType.ONLINE, classes: { root: classes.tab }, icon: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "play_circle_outline" }), iconPosition: "start", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.online.label", defaultMessage: "ui.eventForm.address.online.label" }) })), isLiveTabActive &&
|
|
158
|
+
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Tabs, Object.assign({ className: classes.tabs, value: location, onChange: handleChange, indicatorColor: "secondary", textColor: "secondary", variant: "fullWidth" }, { children: [isInPersonTabActive && ((0, jsx_runtime_1.jsx)(material_1.Tab, { value: types_1.SCEventLocationType.PERSON, classes: { root: classes.tab }, icon: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "add_location_alt" }), iconPosition: "start", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.live.label", defaultMessage: "ui.eventForm.address.live.label" }) })), isOnlineTabActive && ((0, jsx_runtime_1.jsx)(material_1.Tab, { value: types_1.SCEventLocationType.ONLINE, classes: { root: classes.tab }, icon: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "play_circle_outline" }), iconPosition: "start", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.online.label", defaultMessage: "ui.eventForm.address.online.label" }) })), isLiveTabActive && ((0, jsx_runtime_1.jsx)(material_1.Tab, { value: types_1.SCEventLocationType.LIVESTREAM, classes: { root: classes.tab }, icon: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "photo_camera" }), iconPosition: "start", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.liveStream.label", defaultMessage: "ui.eventForm.address.liveStream.label" }) }))] })), (0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.tabContent }, { children: [isInPersonTabActive && location === types_1.SCEventLocationType.PERSON && ((0, jsx_runtime_1.jsx)(material_1.Autocomplete, { disabled: !geocodingApiKey, size: "small", value: geolocation, onChange: handleSelection, inputValue: inputValue, onInputChange: handleLocationChange, options: suggestions, getOptionLabel: (option) => option.description || geolocation.description, noOptionsText: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.live.noResults", defaultMessage: "ui.eventForm.address.live.noResults" }), isOptionEqualToValue: (option, value) => option.description === value.description, renderInput: (params) => ((0, jsx_runtime_1.jsx)(material_1.TextField, Object.assign({}, params, { label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.live.placeholder", defaultMessage: "ui.eventForm.address.live.placeholder" }), variant: "outlined", fullWidth: true, InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "start" }, { children: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "add_location_alt" }) })), params.InputProps.endAdornment] })) }) }))) })), isOnlineTabActive && location === types_1.SCEventLocationType.ONLINE && ((0, jsx_runtime_1.jsx)(UrlTextField_1.default, { size: "small", fullWidth: true, type: "url", placeholder: `${intl.formatMessage(messages.virtualPlaceholder)}`, helperText: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.address.online.help", defaultMessage: "ui.eventForm.address.online.help" }), InputProps: {
|
|
164
159
|
endAdornment: (0, jsx_runtime_1.jsx)(Icon_1.default, { children: "play_circle_outline" })
|
|
165
|
-
}, onChange: handleLinkChange })), isLiveTabActive &&
|
|
160
|
+
}, onChange: handleLinkChange })), isLiveTabActive && location === types_1.SCEventLocationType.LIVESTREAM && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(LiveStream_1.default, { template: liveStream_1.SCLiveStreamTemplateType.SNIPPET, liveStream: liveStream, actions: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}) }), (0, jsx_runtime_1.jsx)(LiveStreamFormSettings_1.default, { settings: liveStream.settings || constants_2.LIVESTREAM_DEFAULT_SETTINGS, onChange: handleLiveStreamSettingsChange })] }))] }))] })));
|
|
166
161
|
}
|
|
167
162
|
exports.default = EventAddress;
|
|
@@ -227,7 +227,7 @@ function EventForm(inProps) {
|
|
|
227
227
|
formData.append('location', field.location === types_1.SCEventLocationType.PERSON ? types_1.SCEventLocationType.PERSON : types_1.SCEventLocationType.ONLINE);
|
|
228
228
|
if (field.location === types_1.SCEventLocationType.ONLINE) {
|
|
229
229
|
formData.append('link', field.link);
|
|
230
|
-
formData.append('live_stream_settings',
|
|
230
|
+
formData.append('live_stream_settings', null);
|
|
231
231
|
}
|
|
232
232
|
else if (field.location === types_1.SCEventLocationType.LIVESTREAM) {
|
|
233
233
|
formData.append('link', '');
|
|
@@ -238,7 +238,7 @@ function EventForm(inProps) {
|
|
|
238
238
|
formData.append('geolocation_lat', field.lat.toString());
|
|
239
239
|
formData.append('geolocation_lng', field.lng.toString());
|
|
240
240
|
formData.append('link', '');
|
|
241
|
-
formData.append('live_stream_settings',
|
|
241
|
+
formData.append('live_stream_settings', null);
|
|
242
242
|
}
|
|
243
243
|
if (privateEnabled) {
|
|
244
244
|
formData.append('privacy', field.isPublic ? types_1.SCEventPrivacyType.PUBLIC : types_1.SCEventPrivacyType.PRIVATE);
|
|
@@ -384,11 +384,7 @@ function EventForm(inProps) {
|
|
|
384
384
|
start_date: field.startDate,
|
|
385
385
|
location: field.location,
|
|
386
386
|
geolocation: field.geolocation,
|
|
387
|
-
live_stream: {
|
|
388
|
-
title: field.name || `${intl.formatMessage(messages.name)}`,
|
|
389
|
-
created_at: field.startDate,
|
|
390
|
-
settings: field.liveStreamSettings
|
|
391
|
-
}
|
|
387
|
+
live_stream: Object.assign(Object.assign({ title: field.name || `${intl.formatMessage(messages.name)}` }, (event && event.live_stream.created_at && { created_at: field.startDate })), { settings: field.liveStreamSettings })
|
|
392
388
|
}) }, EventAddressComponentProps)), privateEnabled && ((0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.privacySection }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ direction: "row", spacing: 1, alignItems: "center", justifyContent: "center" }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ className: (0, classnames_1.default)(classes.switchLabel, { [classes.active]: !field.isPublic }) }, { children: [(0, jsx_runtime_1.jsx)(material_1.Icon, { children: "private" }), (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.privacy.private", defaultMessage: "ui.eventForm.privacy.private" })] })), (0, jsx_runtime_1.jsx)(material_1.Switch, { className: classes.switch, checked: field.isPublic, onChange: () => setField((prev) => (Object.assign(Object.assign({}, prev), { ['isPublic']: !field.isPublic }))), disabled: event && !field.isPublic }), (0, jsx_runtime_1.jsxs)(material_1.Typography, Object.assign({ className: (0, classnames_1.default)(classes.switchLabel, { [classes.active]: field.isPublic }) }, { children: [(0, jsx_runtime_1.jsx)(material_1.Icon, { children: "public" }), (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.privacy.public", defaultMessage: "ui.eventForm.privacy.public" })] }))] })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body2", textAlign: "center", className: classes.privacySectionInfo }, { children: field.isPublic ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventForm.privacy.public.info", defaultMessage: "ui.eventForm.privacy.public.info", values: {
|
|
393
389
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore,@typescript-eslint/ban-ts-comment
|
|
394
390
|
// @ts-ignores
|
|
@@ -34,9 +34,16 @@ function EventInfoDetails(inProps) {
|
|
|
34
34
|
// CONTEXT
|
|
35
35
|
const scRoutingContext = (0, react_core_1.useSCRouting)();
|
|
36
36
|
const scUserContext = (0, react_1.useContext)(react_core_1.SCUserContext);
|
|
37
|
+
const { preferences, features } = (0, react_core_1.useSCPreferences)();
|
|
38
|
+
const liveStreamEnabled = (0, react_1.useMemo)(() => preferences &&
|
|
39
|
+
features &&
|
|
40
|
+
features.includes(types_1.SCFeatureName.LIVE_STREAM) &&
|
|
41
|
+
react_core_1.SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED in preferences &&
|
|
42
|
+
preferences[react_core_1.SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED].value, [preferences, features]);
|
|
37
43
|
const privacy = (0, react_1.useMemo)(() => (scEvent && scEvent.privacy === types_1.SCEventPrivacyType.PUBLIC ? 'ui.eventInfoDetails.privacy.public' : 'ui.eventInfoDetails.privacy.private'), [scEvent]);
|
|
38
44
|
const location = (0, react_1.useMemo)(() => scEvent && scEvent.location === types_1.SCEventLocationType.ONLINE ? 'ui.eventInfoDetails.location.virtual' : 'ui.eventInfoDetails.location.inPerson', [scEvent]);
|
|
39
|
-
const disableJoinEvent = (0, react_1.useMemo)(() => Boolean(!
|
|
45
|
+
const disableJoinEvent = (0, react_1.useMemo)(() => Boolean(!liveStreamEnabled ||
|
|
46
|
+
!scEvent ||
|
|
40
47
|
!scUserContext.user ||
|
|
41
48
|
(scEvent.live_stream &&
|
|
42
49
|
scEvent.live_stream.host.id !== scUserContext.user.id &&
|
|
@@ -39,7 +39,7 @@ const Root = styled(Box, {
|
|
|
39
39
|
slot: 'EventAddressRoot'
|
|
40
40
|
})(() => ({}));
|
|
41
41
|
export default function EventAddress(inProps) {
|
|
42
|
-
var _a
|
|
42
|
+
var _a;
|
|
43
43
|
//PROPS
|
|
44
44
|
const props = useThemeProps({
|
|
45
45
|
props: inProps,
|
|
@@ -75,21 +75,16 @@ export default function EventAddress(inProps) {
|
|
|
75
75
|
features.includes(SCFeatureName.LIVE_STREAM) &&
|
|
76
76
|
SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED in preferences &&
|
|
77
77
|
preferences[SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED].value, [preferences, features]);
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
return (!isFreeTrialTier || (isFreeTrialTier && (scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) && (scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user.id) === 1)) &&
|
|
81
|
-
(((_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream) || event.live_stream);
|
|
82
|
-
}, [(_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission, event]);
|
|
83
|
-
const isInPersonTabActive = useMemo(() => locations.includes(SCEventLocationType.PERSON) || event.location === SCEventLocationType.PERSON, [locations]);
|
|
84
|
-
const isOnlineTabActive = useMemo(() => locations.includes(SCEventLocationType.ONLINE) || event.location === SCEventLocationType.ONLINE, [locations]);
|
|
78
|
+
const isInPersonTabActive = useMemo(() => locations.includes(SCEventLocationType.PERSON) || event.location === SCEventLocationType.PERSON, [locations, event]);
|
|
79
|
+
const isOnlineTabActive = useMemo(() => locations.includes(SCEventLocationType.ONLINE) || event.location === SCEventLocationType.ONLINE, [locations, event]);
|
|
85
80
|
const isLiveTabActive = useMemo(() => {
|
|
86
81
|
var _a, _b;
|
|
87
82
|
return (liveStreamEnabled &&
|
|
88
83
|
locations.includes(SCEventLocationType.LIVESTREAM) &&
|
|
89
84
|
!isFreeTrialTier /* || (isFreeTrialTier && scUserContext?.user && scUserContext?.user.id === 1)*/ &&
|
|
90
85
|
((_b = (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission) === null || _b === void 0 ? void 0 : _b.create_live_stream)) ||
|
|
91
|
-
event.live_stream;
|
|
92
|
-
}, [liveStreamEnabled, (
|
|
86
|
+
(event.live_stream && event.live_stream.created_at);
|
|
87
|
+
}, [liveStreamEnabled, (_a = scUserContext === null || scUserContext === void 0 ? void 0 : scUserContext.user) === null || _a === void 0 ? void 0 : _a.permission, event]);
|
|
93
88
|
// HOOKS
|
|
94
89
|
const { isLoaded, geocodingApiKey } = useSCGoogleApiLoader();
|
|
95
90
|
// HANDLERS
|
|
@@ -158,7 +153,7 @@ export default function EventAddress(inProps) {
|
|
|
158
153
|
if (!isInPersonTabActive && !isOnlineTabActive && !isLiveTabActive) {
|
|
159
154
|
return null;
|
|
160
155
|
}
|
|
161
|
-
return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsxs(Tabs, Object.assign({ className: classes.tabs, value: location, onChange: handleChange, indicatorColor: "secondary", textColor: "secondary", variant: "fullWidth" }, { children: [isInPersonTabActive && (_jsx(Tab, { value: SCEventLocationType.PERSON, classes: { root: classes.tab }, icon: _jsx(Icon, { children: "add_location_alt" }), iconPosition: "start", label: _jsx(FormattedMessage, { id: "ui.eventForm.address.live.label", defaultMessage: "ui.eventForm.address.live.label" }) })), isOnlineTabActive && (_jsx(Tab, { value: SCEventLocationType.ONLINE, classes: { root: classes.tab }, icon: _jsx(Icon, { children: "play_circle_outline" }), iconPosition: "start", label: _jsx(FormattedMessage, { id: "ui.eventForm.address.online.label", defaultMessage: "ui.eventForm.address.online.label" }) })), isLiveTabActive &&
|
|
156
|
+
return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsxs(Tabs, Object.assign({ className: classes.tabs, value: location, onChange: handleChange, indicatorColor: "secondary", textColor: "secondary", variant: "fullWidth" }, { children: [isInPersonTabActive && (_jsx(Tab, { value: SCEventLocationType.PERSON, classes: { root: classes.tab }, icon: _jsx(Icon, { children: "add_location_alt" }), iconPosition: "start", label: _jsx(FormattedMessage, { id: "ui.eventForm.address.live.label", defaultMessage: "ui.eventForm.address.live.label" }) })), isOnlineTabActive && (_jsx(Tab, { value: SCEventLocationType.ONLINE, classes: { root: classes.tab }, icon: _jsx(Icon, { children: "play_circle_outline" }), iconPosition: "start", label: _jsx(FormattedMessage, { id: "ui.eventForm.address.online.label", defaultMessage: "ui.eventForm.address.online.label" }) })), isLiveTabActive && (_jsx(Tab, { value: SCEventLocationType.LIVESTREAM, classes: { root: classes.tab }, icon: _jsx(Icon, { children: "photo_camera" }), iconPosition: "start", label: _jsx(FormattedMessage, { id: "ui.eventForm.address.liveStream.label", defaultMessage: "ui.eventForm.address.liveStream.label" }) }))] })), _jsxs(Box, Object.assign({ className: classes.tabContent }, { children: [isInPersonTabActive && location === SCEventLocationType.PERSON && (_jsx(Autocomplete, { disabled: !geocodingApiKey, size: "small", value: geolocation, onChange: handleSelection, inputValue: inputValue, onInputChange: handleLocationChange, options: suggestions, getOptionLabel: (option) => option.description || geolocation.description, noOptionsText: _jsx(FormattedMessage, { id: "ui.eventForm.address.live.noResults", defaultMessage: "ui.eventForm.address.live.noResults" }), isOptionEqualToValue: (option, value) => option.description === value.description, renderInput: (params) => (_jsx(TextField, Object.assign({}, params, { label: _jsx(FormattedMessage, { id: "ui.eventForm.address.live.placeholder", defaultMessage: "ui.eventForm.address.live.placeholder" }), variant: "outlined", fullWidth: true, InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (_jsxs(_Fragment, { children: [_jsx(InputAdornment, Object.assign({ position: "start" }, { children: _jsx(Icon, { children: "add_location_alt" }) })), params.InputProps.endAdornment] })) }) }))) })), isOnlineTabActive && location === SCEventLocationType.ONLINE && (_jsx(UrlTextField, { size: "small", fullWidth: true, type: "url", placeholder: `${intl.formatMessage(messages.virtualPlaceholder)}`, helperText: _jsx(FormattedMessage, { id: "ui.eventForm.address.online.help", defaultMessage: "ui.eventForm.address.online.help" }), InputProps: {
|
|
162
157
|
endAdornment: _jsx(Icon, { children: "play_circle_outline" })
|
|
163
|
-
}, onChange: handleLinkChange })), isLiveTabActive &&
|
|
158
|
+
}, onChange: handleLinkChange })), isLiveTabActive && location === SCEventLocationType.LIVESTREAM && (_jsxs(_Fragment, { children: [_jsx(LiveStream, { template: SCLiveStreamTemplateType.SNIPPET, liveStream: liveStream, actions: _jsx(_Fragment, {}) }), _jsx(LiveStreamFormSettings, { settings: liveStream.settings || LIVESTREAM_DEFAULT_SETTINGS, onChange: handleLiveStreamSettingsChange })] }))] }))] })));
|
|
164
159
|
}
|
|
@@ -225,7 +225,7 @@ export default function EventForm(inProps) {
|
|
|
225
225
|
formData.append('location', field.location === SCEventLocationType.PERSON ? SCEventLocationType.PERSON : SCEventLocationType.ONLINE);
|
|
226
226
|
if (field.location === SCEventLocationType.ONLINE) {
|
|
227
227
|
formData.append('link', field.link);
|
|
228
|
-
formData.append('live_stream_settings',
|
|
228
|
+
formData.append('live_stream_settings', null);
|
|
229
229
|
}
|
|
230
230
|
else if (field.location === SCEventLocationType.LIVESTREAM) {
|
|
231
231
|
formData.append('link', '');
|
|
@@ -236,7 +236,7 @@ export default function EventForm(inProps) {
|
|
|
236
236
|
formData.append('geolocation_lat', field.lat.toString());
|
|
237
237
|
formData.append('geolocation_lng', field.lng.toString());
|
|
238
238
|
formData.append('link', '');
|
|
239
|
-
formData.append('live_stream_settings',
|
|
239
|
+
formData.append('live_stream_settings', null);
|
|
240
240
|
}
|
|
241
241
|
if (privateEnabled) {
|
|
242
242
|
formData.append('privacy', field.isPublic ? SCEventPrivacyType.PUBLIC : SCEventPrivacyType.PRIVATE);
|
|
@@ -382,11 +382,7 @@ export default function EventForm(inProps) {
|
|
|
382
382
|
start_date: field.startDate,
|
|
383
383
|
location: field.location,
|
|
384
384
|
geolocation: field.geolocation,
|
|
385
|
-
live_stream: {
|
|
386
|
-
title: field.name || `${intl.formatMessage(messages.name)}`,
|
|
387
|
-
created_at: field.startDate,
|
|
388
|
-
settings: field.liveStreamSettings
|
|
389
|
-
}
|
|
385
|
+
live_stream: Object.assign(Object.assign({ title: field.name || `${intl.formatMessage(messages.name)}` }, (event && event.live_stream.created_at && { created_at: field.startDate })), { settings: field.liveStreamSettings })
|
|
390
386
|
}) }, EventAddressComponentProps)), privateEnabled && (_jsxs(Box, Object.assign({ className: classes.privacySection }, { children: [_jsxs(Stack, Object.assign({ direction: "row", spacing: 1, alignItems: "center", justifyContent: "center" }, { children: [_jsxs(Typography, Object.assign({ className: classNames(classes.switchLabel, { [classes.active]: !field.isPublic }) }, { children: [_jsx(Icon, { children: "private" }), _jsx(FormattedMessage, { id: "ui.eventForm.privacy.private", defaultMessage: "ui.eventForm.privacy.private" })] })), _jsx(Switch, { className: classes.switch, checked: field.isPublic, onChange: () => setField((prev) => (Object.assign(Object.assign({}, prev), { ['isPublic']: !field.isPublic }))), disabled: event && !field.isPublic }), _jsxs(Typography, Object.assign({ className: classNames(classes.switchLabel, { [classes.active]: field.isPublic }) }, { children: [_jsx(Icon, { children: "public" }), _jsx(FormattedMessage, { id: "ui.eventForm.privacy.public", defaultMessage: "ui.eventForm.privacy.public" })] }))] })), _jsx(Typography, Object.assign({ variant: "body2", textAlign: "center", className: classes.privacySectionInfo }, { children: field.isPublic ? (_jsx(FormattedMessage, { id: "ui.eventForm.privacy.public.info", defaultMessage: "ui.eventForm.privacy.public.info", values: {
|
|
391
387
|
// eslint-disable-next-line @typescript-eslint/ban-ts-ignore,@typescript-eslint/ban-ts-comment
|
|
392
388
|
// @ts-ignores
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Button, Icon, Stack, styled, Tooltip, Typography, useThemeProps } from '@mui/material';
|
|
3
|
-
import { Link, SCRoutes, SCUserContext, useSCFetchEvent, useSCRouting } from '@selfcommunity/react-core';
|
|
4
|
-
import { SCEventLocationType, SCEventPrivacyType, SCEventRecurrenceType } from '@selfcommunity/types';
|
|
3
|
+
import { Link, SCPreferences, SCRoutes, SCUserContext, useSCFetchEvent, useSCPreferences, useSCRouting } from '@selfcommunity/react-core';
|
|
4
|
+
import { SCEventLocationType, SCEventPrivacyType, SCEventRecurrenceType, SCFeatureName } from '@selfcommunity/types';
|
|
5
5
|
import { useContext, useMemo } from 'react';
|
|
6
6
|
import { FormattedMessage, useIntl } from 'react-intl';
|
|
7
7
|
const PREFIX = 'SCEventInfoDetails';
|
|
@@ -32,9 +32,16 @@ export default function EventInfoDetails(inProps) {
|
|
|
32
32
|
// CONTEXT
|
|
33
33
|
const scRoutingContext = useSCRouting();
|
|
34
34
|
const scUserContext = useContext(SCUserContext);
|
|
35
|
+
const { preferences, features } = useSCPreferences();
|
|
36
|
+
const liveStreamEnabled = useMemo(() => preferences &&
|
|
37
|
+
features &&
|
|
38
|
+
features.includes(SCFeatureName.LIVE_STREAM) &&
|
|
39
|
+
SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED in preferences &&
|
|
40
|
+
preferences[SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED].value, [preferences, features]);
|
|
35
41
|
const privacy = useMemo(() => (scEvent && scEvent.privacy === SCEventPrivacyType.PUBLIC ? 'ui.eventInfoDetails.privacy.public' : 'ui.eventInfoDetails.privacy.private'), [scEvent]);
|
|
36
42
|
const location = useMemo(() => scEvent && scEvent.location === SCEventLocationType.ONLINE ? 'ui.eventInfoDetails.location.virtual' : 'ui.eventInfoDetails.location.inPerson', [scEvent]);
|
|
37
|
-
const disableJoinEvent = useMemo(() => Boolean(!
|
|
43
|
+
const disableJoinEvent = useMemo(() => Boolean(!liveStreamEnabled ||
|
|
44
|
+
!scEvent ||
|
|
38
45
|
!scUserContext.user ||
|
|
39
46
|
(scEvent.live_stream &&
|
|
40
47
|
scEvent.live_stream.host.id !== scUserContext.user.id &&
|