@selfcommunity/react-ui 0.8.0-live.56 → 0.8.0-live.58
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/LiveStream/LiveStream.js +1 -1
- package/lib/cjs/components/LiveStreamRoom/LiveStreamRoom.js +10 -5
- package/lib/cjs/components/LiveStreamRoom/LiveStreamVideoConference/VideoConference.js +1 -2
- package/lib/cjs/shared/LiveStreamInfoDetails/index.js +9 -1
- package/lib/esm/components/LiveStream/LiveStream.js +1 -1
- package/lib/esm/components/LiveStreamRoom/LiveStreamRoom.js +12 -7
- package/lib/esm/components/LiveStreamRoom/LiveStreamVideoConference/VideoConference.js +1 -2
- package/lib/esm/shared/LiveStreamInfoDetails/index.js +9 -1
- package/lib/umd/react-ui.js +1 -1
- package/package.json +7 -7
|
@@ -126,7 +126,7 @@ function LiveStream(inProps) {
|
|
|
126
126
|
contentObj = ((0, jsx_runtime_1.jsxs)(DetailRoot, Object.assign({ className: classes.detailRoot }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.detailImageWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.CardMedia, { component: "img", image: scLiveStream.cover, alt: scLiveStream.title, className: classes.detailImage }), !hideInProgress && inProgress && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.detailInProgress })), (0, jsx_runtime_1.jsx)(Calendar_1.default, { day: new Date(scLiveStream.created_at).getDate() })] })), (0, jsx_runtime_1.jsxs)(material_1.CardContent, Object.assign({ className: classes.detailContent }, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.detailNameWrapper }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h3", className: classes.detailName }, { children: scLiveStream.title })) })), (0, jsx_runtime_1.jsx)(LiveStreamInfoDetails_1.default, { liveStream: scLiveStream }), !hideLiveStreamHost && ((0, jsx_runtime_1.jsx)(User_1.default, { user: scLiveStream.host, elevation: 0, secondary: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "caption" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.myEventsWidget.planner", defaultMessage: "ui.myEventsWidget.planner" }) })), actions: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), className: classes.detailUser })), (0, jsx_runtime_1.jsx)(material_1.Divider, { className: classes.detailSecondDivider })] })), actions !== null && actions !== void 0 ? actions : ((0, jsx_runtime_1.jsx)(material_1.CardActions, Object.assign({ className: classes.detailActions }, { children: (0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ size: "small", variant: "outlined", component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream) }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.liveStream.see", id: "ui.liveStream.see" }) })) })))] })));
|
|
127
127
|
}
|
|
128
128
|
else if (template === liveStream_1.SCLiveStreamTemplateType.PREVIEW) {
|
|
129
|
-
contentObj = ((0, jsx_runtime_1.jsxs)(PreviewRoot, Object.assign({ className: classes.previewRoot }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ position: "relative", className: classes.previewImageWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.CardMedia, { component: "img", image: scLiveStream.cover, alt: scLiveStream.title, className: classes.previewImage }), !hideInProgress && inProgress && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.previewInProgress }))] })), (0, jsx_runtime_1.jsx)(material_1.CardContent, Object.assign({ className: classes.previewContent }, { children: (0, jsx_runtime_1.jsx)(LiveStreamInfoDetails_1.default, { liveStream: scLiveStream,
|
|
129
|
+
contentObj = ((0, jsx_runtime_1.jsxs)(PreviewRoot, Object.assign({ className: classes.previewRoot }, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ position: "relative", className: classes.previewImageWrapper }, { children: [(0, jsx_runtime_1.jsx)(material_1.CardMedia, { component: "img", image: scLiveStream.cover, alt: scLiveStream.title, className: classes.previewImage }), !hideInProgress && inProgress && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.previewInProgress }))] })), (0, jsx_runtime_1.jsx)(material_1.CardContent, Object.assign({ className: classes.previewContent }, { children: (0, jsx_runtime_1.jsx)(LiveStreamInfoDetails_1.default, { liveStream: scLiveStream, beforeDateInfo: (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream), className: classes.previewNameWrapper }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "h5", className: classes.previewName }, { children: scLiveStream.title })) })) }) })), actions !== null && actions !== void 0 ? actions : ((0, jsx_runtime_1.jsx)(material_1.CardActions, Object.assign({ className: classes.previewActions }, { children: (0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ size: "small", variant: "outlined", component: react_core_1.Link, to: scRoutingContext.url(react_core_1.SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream) }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { defaultMessage: "ui.liveStream.see", id: "ui.liveStream.see" }) })) })))] })));
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
132
|
contentObj = ((0, jsx_runtime_1.jsx)(SnippetRoot, { elevation: 0, square: true, disableTypography: true, className: classes.snippetRoot, image: (0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.snippetImage }, { children: [(0, jsx_runtime_1.jsx)(material_1.Avatar, { variant: "square", alt: scLiveStream.title, src: scLiveStream.cover, className: classes.snippetAvatar }), ' ', !hideInProgress && inProgress && ((0, jsx_runtime_1.jsx)(material_1.Chip, { size: "small", component: "div", label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.snippetInProgress }))] })), primary: (0, jsx_runtime_1.jsxs)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.EVENT_ROUTE_NAME, scLiveStream), className: classes.snippetPrimary }, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ component: "span" }, { children: `${intl.formatDate(scLiveStream.created_at, {
|
|
@@ -6,6 +6,7 @@ const material_1 = require("@mui/material");
|
|
|
6
6
|
const styles_1 = require("@mui/material/styles");
|
|
7
7
|
const system_1 = require("@mui/system");
|
|
8
8
|
const react_core_1 = require("@selfcommunity/react-core");
|
|
9
|
+
const types_1 = require("@selfcommunity/types");
|
|
9
10
|
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
10
11
|
const react_intl_1 = require("react-intl");
|
|
11
12
|
const constants_1 = require("./constants");
|
|
@@ -59,7 +60,6 @@ const Root = (0, styles_1.styled)(material_1.Box, {
|
|
|
59
60
|
* @param inProps
|
|
60
61
|
*/
|
|
61
62
|
function LiveStreamRoom(inProps) {
|
|
62
|
-
var _a;
|
|
63
63
|
//PROPS
|
|
64
64
|
const props = (0, system_1.useThemeProps)({
|
|
65
65
|
props: inProps,
|
|
@@ -68,6 +68,7 @@ function LiveStreamRoom(inProps) {
|
|
|
68
68
|
const { id = `live_stream_room_object_${props.liveStreamId ? props.liveStreamId : props.liveStream ? props.liveStream.id : ''}`, liveStreamId = null, liveStream = null, className, showPrejoinTitle = true, showPrejoinDescription = false, startPrejoinContent, endPrejoinContent, presetConnectionDetails, presetPreJoinChoices, LiveStreamVideoConferenceComponentProps = {} } = props, rest = tslib_1.__rest(props, ["id", "liveStreamId", "liveStream", "className", "showPrejoinTitle", "showPrejoinDescription", "startPrejoinContent", "endPrejoinContent", "presetConnectionDetails", "presetPreJoinChoices", "LiveStreamVideoConferenceComponentProps"]);
|
|
69
69
|
// CONTEXT
|
|
70
70
|
const scUserContext = (0, react_core_1.useSCUser)();
|
|
71
|
+
const { preferences, features } = (0, react_core_1.useSCPreferences)();
|
|
71
72
|
// STATE
|
|
72
73
|
const { scLiveStream } = (0, react_core_1.useSCFetchLiveStream)({ id: liveStreamId, liveStream });
|
|
73
74
|
const [preJoinChoices, setPreJoinChoices] = (0, react_1.useState)(presetPreJoinChoices);
|
|
@@ -81,7 +82,11 @@ function LiveStreamRoom(inProps) {
|
|
|
81
82
|
};
|
|
82
83
|
}, [scUserContext.user, scLiveStream]);
|
|
83
84
|
const [connectionDetails, setConnectionDetails] = (0, react_1.useState)(presetConnectionDetails);
|
|
84
|
-
const
|
|
85
|
+
const liveStreamEnabled = (0, react_1.useMemo)(() => preferences &&
|
|
86
|
+
features &&
|
|
87
|
+
features.includes(types_1.SCFeatureName.LIVE_STREAM) &&
|
|
88
|
+
react_core_1.SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED in preferences &&
|
|
89
|
+
preferences[react_core_1.SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED].value, [preferences, features]);
|
|
85
90
|
const toggleAttrDisabledPrejoinActions = (0, react_1.useCallback)((disabled) => {
|
|
86
91
|
const container = document.querySelector('.lk-prejoin');
|
|
87
92
|
if (container) {
|
|
@@ -97,7 +102,7 @@ function LiveStreamRoom(inProps) {
|
|
|
97
102
|
/**
|
|
98
103
|
* Handle PreJoin Submit
|
|
99
104
|
*/
|
|
100
|
-
const handlePreJoinSubmit = (0, react_1.useCallback)((values) =>
|
|
105
|
+
const handlePreJoinSubmit = (0, react_1.useCallback)((values) => {
|
|
101
106
|
if (scLiveStream) {
|
|
102
107
|
setLoading(true);
|
|
103
108
|
api_services_1.LiveStreamService.join(scLiveStream.id)
|
|
@@ -112,7 +117,7 @@ function LiveStreamRoom(inProps) {
|
|
|
112
117
|
});
|
|
113
118
|
toggleAttrDisabledPrejoinActions(true);
|
|
114
119
|
}
|
|
115
|
-
}
|
|
120
|
+
}, [scUserContext.user, setPreJoinChoices, setConnectionDetails, scLiveStream]);
|
|
116
121
|
/**
|
|
117
122
|
* Handle PreJoin Error
|
|
118
123
|
*/
|
|
@@ -120,7 +125,7 @@ function LiveStreamRoom(inProps) {
|
|
|
120
125
|
/**
|
|
121
126
|
* User must be authenticated
|
|
122
127
|
*/
|
|
123
|
-
if ((!scLiveStream && !scUserContext.user) || !
|
|
128
|
+
if ((!scLiveStream && !scUserContext.user) || !liveStreamEnabled) {
|
|
124
129
|
return (0, jsx_runtime_1.jsx)(material_1.CircularProgress, {});
|
|
125
130
|
}
|
|
126
131
|
/**
|
|
@@ -27,7 +27,7 @@ const components_react_1 = require("@livekit/components-react");
|
|
|
27
27
|
*/
|
|
28
28
|
function VideoConference(_a) {
|
|
29
29
|
var _b, _c;
|
|
30
|
-
var { chatMessageFormatter, chatMessageDecoder, chatMessageEncoder, SettingsComponent, speakerFocused, disableChat = false, disableMicrophone = false, disableCamera = false, disableScreenShare =
|
|
30
|
+
var { chatMessageFormatter, chatMessageDecoder, chatMessageEncoder, SettingsComponent, speakerFocused, disableChat = false, disableMicrophone = false, disableCamera = false, disableScreenShare = false, hideParticipantList = false, showSettings } = _a, props = tslib_1.__rest(_a, ["chatMessageFormatter", "chatMessageDecoder", "chatMessageEncoder", "SettingsComponent", "speakerFocused", "disableChat", "disableMicrophone", "disableCamera", "disableScreenShare", "hideParticipantList", "showSettings"]);
|
|
31
31
|
const [widgetState, setWidgetState] = React.useState({
|
|
32
32
|
showChat: false,
|
|
33
33
|
unreadMessages: 0,
|
|
@@ -73,7 +73,6 @@ function VideoConference(_a) {
|
|
|
73
73
|
lastAutoFocusedScreenShareTrack.current = null;
|
|
74
74
|
}
|
|
75
75
|
if (focusTrack && !(0, components_core_1.isTrackReference)(focusTrack)) {
|
|
76
|
-
console.log('asdadsa');
|
|
77
76
|
const updatedFocusTrack = tracks.find((tr) => tr.participant.identity === focusTrack.participant.identity && tr.source === focusTrack.source);
|
|
78
77
|
if (updatedFocusTrack !== focusTrack && (0, components_core_1.isTrackReference)(updatedFocusTrack)) {
|
|
79
78
|
(_f = (_e = layoutContext.pin).dispatch) === null || _f === void 0 ? void 0 : _f.call(_e, { msg: 'set_pin', trackReference: updatedFocusTrack });
|
|
@@ -33,7 +33,15 @@ function LiveStreamInfoDetails(inProps) {
|
|
|
33
33
|
if (!scLiveStream) {
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
|
-
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: classes.root }, { children: [beforeDateInfo, hasDateInfo && ((0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideDateIcon && (0, jsx_runtime_1.jsx)(material_1.Icon, Object.assign({ fontSize: "small" }, { children: scLiveStream.closed_at ? 'calendar_off' : 'CalendarIcon' })),
|
|
36
|
+
return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: classes.root }, { children: [beforeDateInfo, hasDateInfo && ((0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideDateIcon && (0, jsx_runtime_1.jsx)(material_1.Icon, Object.assign({ fontSize: "small" }, { children: scLiveStream.closed_at ? 'calendar_off' : 'CalendarIcon' })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventInfoDetails.date.startEndTime", defaultMessage: "ui.eventInfoDetails.date.startEndTime", values: {
|
|
37
|
+
date: intl.formatDate(scLiveStream.created_at, {
|
|
38
|
+
weekday: 'long',
|
|
39
|
+
day: 'numeric',
|
|
40
|
+
year: 'numeric',
|
|
41
|
+
month: 'long'
|
|
42
|
+
}),
|
|
43
|
+
start: intl.formatDate(scLiveStream.created_at, { hour: 'numeric', minute: 'numeric' })
|
|
44
|
+
} }) })), hasInProgress && scLiveStream.running && ((0, jsx_runtime_1.jsx)(material_1.Tooltip, Object.assign({ title: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventInfoDetails.inProgress", defaultMessage: "ui.eventInfoDetails.inProgress" }) }, { children: (0, jsx_runtime_1.jsx)(material_1.Box, { className: classes.inProgress }) })))] }))), beforeLocationInfo, hasLocationInfo && ((0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideLocationIcon && (0, jsx_runtime_1.jsx)(material_1.Icon, Object.assign({ fontSize: "small" }, { children: "play_circle_outline" })), (0, jsx_runtime_1.jsx)(react_core_1.Link, Object.assign({ to: scRoutingContext.url(react_core_1.SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream), target: "_blank", className: classes.link }, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1", className: classes.url }, { children: scRoutingContext.url(react_core_1.SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream) })) }))] }))), beforeCreatedInfo, hasCreatedInfo && ((0, jsx_runtime_1.jsxs)(material_1.Stack, Object.assign({ className: classes.creationWrapper }, { children: [!hideCreatedIcon && (0, jsx_runtime_1.jsx)(material_1.Icon, Object.assign({ fontSize: "small" }, { children: "create" })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.eventInfoDetails.date.create", defaultMessage: "ui.eventInfoDetails.date.create", values: {
|
|
37
45
|
date: intl.formatDate(scLiveStream.created_at, {
|
|
38
46
|
weekday: 'long',
|
|
39
47
|
day: 'numeric',
|
|
@@ -124,7 +124,7 @@ export default function LiveStream(inProps) {
|
|
|
124
124
|
contentObj = (_jsxs(DetailRoot, Object.assign({ className: classes.detailRoot }, { children: [_jsxs(Box, Object.assign({ className: classes.detailImageWrapper }, { children: [_jsx(CardMedia, { component: "img", image: scLiveStream.cover, alt: scLiveStream.title, className: classes.detailImage }), !hideInProgress && inProgress && (_jsx(Chip, { size: "small", component: "div", label: _jsx(FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.detailInProgress })), _jsx(Calendar, { day: new Date(scLiveStream.created_at).getDate() })] })), _jsxs(CardContent, Object.assign({ className: classes.detailContent }, { children: [_jsx(Box, Object.assign({ className: classes.detailNameWrapper }, { children: _jsx(Typography, Object.assign({ variant: "h3", className: classes.detailName }, { children: scLiveStream.title })) })), _jsx(LiveStreamInfoDetails, { liveStream: scLiveStream }), !hideLiveStreamHost && (_jsx(User, { user: scLiveStream.host, elevation: 0, secondary: _jsx(Typography, Object.assign({ variant: "caption" }, { children: _jsx(FormattedMessage, { id: "ui.myEventsWidget.planner", defaultMessage: "ui.myEventsWidget.planner" }) })), actions: _jsx(_Fragment, {}), className: classes.detailUser })), _jsx(Divider, { className: classes.detailSecondDivider })] })), actions !== null && actions !== void 0 ? actions : (_jsx(CardActions, Object.assign({ className: classes.detailActions }, { children: _jsx(Button, Object.assign({ size: "small", variant: "outlined", component: Link, to: scRoutingContext.url(SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.liveStream.see", id: "ui.liveStream.see" }) })) })))] })));
|
|
125
125
|
}
|
|
126
126
|
else if (template === SCLiveStreamTemplateType.PREVIEW) {
|
|
127
|
-
contentObj = (_jsxs(PreviewRoot, Object.assign({ className: classes.previewRoot }, { children: [_jsxs(Box, Object.assign({ position: "relative", className: classes.previewImageWrapper }, { children: [_jsx(CardMedia, { component: "img", image: scLiveStream.cover, alt: scLiveStream.title, className: classes.previewImage }), !hideInProgress && inProgress && (_jsx(Chip, { size: "small", component: "div", label: _jsx(FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.previewInProgress }))] })), _jsx(CardContent, Object.assign({ className: classes.previewContent }, { children: _jsx(LiveStreamInfoDetails, { liveStream: scLiveStream,
|
|
127
|
+
contentObj = (_jsxs(PreviewRoot, Object.assign({ className: classes.previewRoot }, { children: [_jsxs(Box, Object.assign({ position: "relative", className: classes.previewImageWrapper }, { children: [_jsx(CardMedia, { component: "img", image: scLiveStream.cover, alt: scLiveStream.title, className: classes.previewImage }), !hideInProgress && inProgress && (_jsx(Chip, { size: "small", component: "div", label: _jsx(FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.previewInProgress }))] })), _jsx(CardContent, Object.assign({ className: classes.previewContent }, { children: _jsx(LiveStreamInfoDetails, { liveStream: scLiveStream, beforeDateInfo: _jsx(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream), className: classes.previewNameWrapper }, { children: _jsx(Typography, Object.assign({ variant: "h5", className: classes.previewName }, { children: scLiveStream.title })) })) }) })), actions !== null && actions !== void 0 ? actions : (_jsx(CardActions, Object.assign({ className: classes.previewActions }, { children: _jsx(Button, Object.assign({ size: "small", variant: "outlined", component: Link, to: scRoutingContext.url(SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream) }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.liveStream.see", id: "ui.liveStream.see" }) })) })))] })));
|
|
128
128
|
}
|
|
129
129
|
else {
|
|
130
130
|
contentObj = (_jsx(SnippetRoot, { elevation: 0, square: true, disableTypography: true, className: classes.snippetRoot, image: _jsxs(Box, Object.assign({ className: classes.snippetImage }, { children: [_jsx(Avatar, { variant: "square", alt: scLiveStream.title, src: scLiveStream.cover, className: classes.snippetAvatar }), ' ', !hideInProgress && inProgress && (_jsx(Chip, { size: "small", component: "div", label: _jsx(FormattedMessage, { id: "ui.liveStream.inProgress", defaultMessage: "ui.liveStream.inProgress" }), className: classes.snippetInProgress }))] })), primary: _jsxs(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.EVENT_ROUTE_NAME, scLiveStream), className: classes.snippetPrimary }, { children: [_jsx(Typography, Object.assign({ component: "span" }, { children: `${intl.formatDate(scLiveStream.created_at, {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Box, CircularProgress, Typography } from '@mui/material';
|
|
4
4
|
import { styled } from '@mui/material/styles';
|
|
5
5
|
import { useThemeProps } from '@mui/system';
|
|
6
|
-
import { useSCFetchLiveStream, useSCUser } from '@selfcommunity/react-core';
|
|
6
|
+
import { SCPreferences, useSCFetchLiveStream, useSCPreferences, useSCUser } from '@selfcommunity/react-core';
|
|
7
|
+
import { SCFeatureName } from '@selfcommunity/types';
|
|
7
8
|
import classNames from 'classnames';
|
|
8
9
|
import { FormattedMessage } from 'react-intl';
|
|
9
10
|
import { PREFIX } from './constants';
|
|
@@ -57,7 +58,6 @@ const Root = styled(Box, {
|
|
|
57
58
|
* @param inProps
|
|
58
59
|
*/
|
|
59
60
|
export default function LiveStreamRoom(inProps) {
|
|
60
|
-
var _a;
|
|
61
61
|
//PROPS
|
|
62
62
|
const props = useThemeProps({
|
|
63
63
|
props: inProps,
|
|
@@ -66,6 +66,7 @@ export default function LiveStreamRoom(inProps) {
|
|
|
66
66
|
const { id = `live_stream_room_object_${props.liveStreamId ? props.liveStreamId : props.liveStream ? props.liveStream.id : ''}`, liveStreamId = null, liveStream = null, className, showPrejoinTitle = true, showPrejoinDescription = false, startPrejoinContent, endPrejoinContent, presetConnectionDetails, presetPreJoinChoices, LiveStreamVideoConferenceComponentProps = {} } = props, rest = __rest(props, ["id", "liveStreamId", "liveStream", "className", "showPrejoinTitle", "showPrejoinDescription", "startPrejoinContent", "endPrejoinContent", "presetConnectionDetails", "presetPreJoinChoices", "LiveStreamVideoConferenceComponentProps"]);
|
|
67
67
|
// CONTEXT
|
|
68
68
|
const scUserContext = useSCUser();
|
|
69
|
+
const { preferences, features } = useSCPreferences();
|
|
69
70
|
// STATE
|
|
70
71
|
const { scLiveStream } = useSCFetchLiveStream({ id: liveStreamId, liveStream });
|
|
71
72
|
const [preJoinChoices, setPreJoinChoices] = useState(presetPreJoinChoices);
|
|
@@ -79,7 +80,11 @@ export default function LiveStreamRoom(inProps) {
|
|
|
79
80
|
};
|
|
80
81
|
}, [scUserContext.user, scLiveStream]);
|
|
81
82
|
const [connectionDetails, setConnectionDetails] = useState(presetConnectionDetails);
|
|
82
|
-
const
|
|
83
|
+
const liveStreamEnabled = useMemo(() => preferences &&
|
|
84
|
+
features &&
|
|
85
|
+
features.includes(SCFeatureName.LIVE_STREAM) &&
|
|
86
|
+
SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED in preferences &&
|
|
87
|
+
preferences[SCPreferences.CONFIGURATIONS_LIVE_STREAM_ENABLED].value, [preferences, features]);
|
|
83
88
|
const toggleAttrDisabledPrejoinActions = useCallback((disabled) => {
|
|
84
89
|
const container = document.querySelector('.lk-prejoin');
|
|
85
90
|
if (container) {
|
|
@@ -95,7 +100,7 @@ export default function LiveStreamRoom(inProps) {
|
|
|
95
100
|
/**
|
|
96
101
|
* Handle PreJoin Submit
|
|
97
102
|
*/
|
|
98
|
-
const handlePreJoinSubmit = useCallback((values) =>
|
|
103
|
+
const handlePreJoinSubmit = useCallback((values) => {
|
|
99
104
|
if (scLiveStream) {
|
|
100
105
|
setLoading(true);
|
|
101
106
|
LiveStreamService.join(scLiveStream.id)
|
|
@@ -110,7 +115,7 @@ export default function LiveStreamRoom(inProps) {
|
|
|
110
115
|
});
|
|
111
116
|
toggleAttrDisabledPrejoinActions(true);
|
|
112
117
|
}
|
|
113
|
-
}
|
|
118
|
+
}, [scUserContext.user, setPreJoinChoices, setConnectionDetails, scLiveStream]);
|
|
114
119
|
/**
|
|
115
120
|
* Handle PreJoin Error
|
|
116
121
|
*/
|
|
@@ -118,7 +123,7 @@ export default function LiveStreamRoom(inProps) {
|
|
|
118
123
|
/**
|
|
119
124
|
* User must be authenticated
|
|
120
125
|
*/
|
|
121
|
-
if ((!scLiveStream && !scUserContext.user) || !
|
|
126
|
+
if ((!scLiveStream && !scUserContext.user) || !liveStreamEnabled) {
|
|
122
127
|
return _jsx(CircularProgress, {});
|
|
123
128
|
}
|
|
124
129
|
/**
|
|
@@ -24,7 +24,7 @@ import { CarouselLayout, Chat, ConnectionStateToast, ControlBar, FocusLayout, Fo
|
|
|
24
24
|
*/
|
|
25
25
|
export function VideoConference(_a) {
|
|
26
26
|
var _b, _c;
|
|
27
|
-
var { chatMessageFormatter, chatMessageDecoder, chatMessageEncoder, SettingsComponent, speakerFocused, disableChat = false, disableMicrophone = false, disableCamera = false, disableScreenShare =
|
|
27
|
+
var { chatMessageFormatter, chatMessageDecoder, chatMessageEncoder, SettingsComponent, speakerFocused, disableChat = false, disableMicrophone = false, disableCamera = false, disableScreenShare = false, hideParticipantList = false, showSettings } = _a, props = __rest(_a, ["chatMessageFormatter", "chatMessageDecoder", "chatMessageEncoder", "SettingsComponent", "speakerFocused", "disableChat", "disableMicrophone", "disableCamera", "disableScreenShare", "hideParticipantList", "showSettings"]);
|
|
28
28
|
const [widgetState, setWidgetState] = React.useState({
|
|
29
29
|
showChat: false,
|
|
30
30
|
unreadMessages: 0,
|
|
@@ -70,7 +70,6 @@ export function VideoConference(_a) {
|
|
|
70
70
|
lastAutoFocusedScreenShareTrack.current = null;
|
|
71
71
|
}
|
|
72
72
|
if (focusTrack && !isTrackReference(focusTrack)) {
|
|
73
|
-
console.log('asdadsa');
|
|
74
73
|
const updatedFocusTrack = tracks.find((tr) => tr.participant.identity === focusTrack.participant.identity && tr.source === focusTrack.source);
|
|
75
74
|
if (updatedFocusTrack !== focusTrack && isTrackReference(updatedFocusTrack)) {
|
|
76
75
|
(_f = (_e = layoutContext.pin).dispatch) === null || _f === void 0 ? void 0 : _f.call(_e, { msg: 'set_pin', trackReference: updatedFocusTrack });
|
|
@@ -31,7 +31,15 @@ export default function LiveStreamInfoDetails(inProps) {
|
|
|
31
31
|
if (!scLiveStream) {
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
-
return (_jsxs(Root, Object.assign({ className: classes.root }, { children: [beforeDateInfo, hasDateInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideDateIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: scLiveStream.closed_at ? 'calendar_off' : 'CalendarIcon' })),
|
|
34
|
+
return (_jsxs(Root, Object.assign({ className: classes.root }, { children: [beforeDateInfo, hasDateInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideDateIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: scLiveStream.closed_at ? 'calendar_off' : 'CalendarIcon' })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventInfoDetails.date.startEndTime", defaultMessage: "ui.eventInfoDetails.date.startEndTime", values: {
|
|
35
|
+
date: intl.formatDate(scLiveStream.created_at, {
|
|
36
|
+
weekday: 'long',
|
|
37
|
+
day: 'numeric',
|
|
38
|
+
year: 'numeric',
|
|
39
|
+
month: 'long'
|
|
40
|
+
}),
|
|
41
|
+
start: intl.formatDate(scLiveStream.created_at, { hour: 'numeric', minute: 'numeric' })
|
|
42
|
+
} }) })), hasInProgress && scLiveStream.running && (_jsx(Tooltip, Object.assign({ title: _jsx(FormattedMessage, { id: "ui.eventInfoDetails.inProgress", defaultMessage: "ui.eventInfoDetails.inProgress" }) }, { children: _jsx(Box, { className: classes.inProgress }) })))] }))), beforeLocationInfo, hasLocationInfo && (_jsxs(Stack, Object.assign({ className: classes.iconTextWrapper }, { children: [!hideLocationIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "play_circle_outline" })), _jsx(Link, Object.assign({ to: scRoutingContext.url(SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream), target: "_blank", className: classes.link }, { children: _jsx(Typography, Object.assign({ variant: "body1", className: classes.url }, { children: scRoutingContext.url(SCRoutes.LIVESTREAM_ROUTE_NAME, scLiveStream) })) }))] }))), beforeCreatedInfo, hasCreatedInfo && (_jsxs(Stack, Object.assign({ className: classes.creationWrapper }, { children: [!hideCreatedIcon && _jsx(Icon, Object.assign({ fontSize: "small" }, { children: "create" })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.eventInfoDetails.date.create", defaultMessage: "ui.eventInfoDetails.date.create", values: {
|
|
35
43
|
date: intl.formatDate(scLiveStream.created_at, {
|
|
36
44
|
weekday: 'long',
|
|
37
45
|
day: 'numeric',
|