@100mslive/roomkit-react 0.1.1 → 0.1.2-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +18 -0
- package/dist/Accordion/Accordion.d.ts +62 -138
- package/dist/Accordion/index.d.ts +62 -138
- package/dist/{ActiveSpeakerView-G32BDM5F.js → ActiveSpeakerView-N7C6WL27.js} +6 -6
- package/dist/{ActiveSpeakerView-LW4WDBC6.css → ActiveSpeakerView-ZOCC7LQW.css} +2 -2
- package/dist/{PinnedTrackView-OAA4HAID.css.map → ActiveSpeakerView-ZOCC7LQW.css.map} +2 -2
- package/dist/Avatar/Avatar.d.ts +31 -69
- package/dist/Button/Button.d.ts +31 -69
- package/dist/Checkbox/Checkbox.d.ts +62 -138
- package/dist/Collapsible/Collapsible.d.ts +93 -207
- package/dist/Divider/Divider.d.ts +62 -138
- package/dist/Dropdown/Dropdown.d.ts +372 -828
- package/dist/Fieldset/Fieldset.d.ts +31 -69
- package/dist/Footer/Footer.d.ts +248 -552
- package/dist/{HLSView-ZYNT3HJD.js → HLSView-3ILTIGBT.js} +16 -16
- package/dist/HLSView-3ILTIGBT.js.map +7 -0
- package/dist/{HLSView-DIQQF2PP.css → HLSView-OVDMVJX5.css} +2 -2
- package/dist/{HLSView-DIQQF2PP.css.map → HLSView-OVDMVJX5.css.map} +2 -2
- package/dist/IconButton/IconButton.d.ts +31 -69
- package/dist/Input/Input.d.ts +189 -417
- package/dist/Label/Label.d.ts +31 -69
- package/dist/Layout/Box.d.ts +31 -69
- package/dist/Layout/Flex.d.ts +31 -69
- package/dist/Link/Link.d.ts +31 -69
- package/dist/Modal/Dialog.d.ts +248 -552
- package/dist/Modal/DialogContent.d.ts +217 -483
- package/dist/Pagination/StyledPagination.d.ts +124 -276
- package/dist/{PinnedTrackView-GTXL2UTS.js → PinnedTrackView-6N6N5WOF.js} +6 -6
- package/dist/{PinnedTrackView-OAA4HAID.css → PinnedTrackView-RIL5IW5A.css} +2 -2
- package/dist/{conference-LE4T3ZNF.css.map → PinnedTrackView-RIL5IW5A.css.map} +2 -2
- package/dist/Popover/index.d.ts +93 -207
- package/dist/Prebuilt/provider/roomLayoutProvider/constants/index.d.ts +2 -0
- package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.d.ts +9 -0
- package/dist/Prebuilt/provider/roomLayoutProvider/index.d.ts +9 -0
- package/dist/Progress/index.d.ts +62 -138
- package/dist/RadioGroup/RadioGroup.d.ts +93 -207
- package/dist/ReactSelect/ReactSelect.d.ts +310 -690
- package/dist/Select/Select.d.ts +93 -207
- package/dist/Slider/Slider.d.ts +31 -69
- package/dist/Stats/StyledStats.d.ts +186 -414
- package/dist/Switch/Switch.d.ts +31 -69
- package/dist/Tabs/Tabs.d.ts +124 -276
- package/dist/Text/Text.d.ts +31 -69
- package/dist/Theme/ThemeProvider.d.ts +63 -140
- package/dist/Theme/base.config.d.ts +31 -53
- package/dist/Theme/index.d.ts +0 -1
- package/dist/Theme/stitches.config.d.ts +404 -915
- package/dist/TileMenu/StyledMenuTile.d.ts +217 -483
- package/dist/Toast/Toast.d.ts +187 -415
- package/dist/Video/Video.d.ts +31 -69
- package/dist/VideoList/StyledVideoList.d.ts +93 -207
- package/dist/VideoTile/StyledVideoTile.d.ts +279 -621
- package/dist/{VirtualBackground-HWU22Q6S.js → VirtualBackground-R3JHARN5.js} +4 -3
- package/dist/{VirtualBackground-HWU22Q6S.js.map → VirtualBackground-R3JHARN5.js.map} +2 -2
- package/dist/chunk-DH3QSV4E.js +58 -0
- package/dist/chunk-DH3QSV4E.js.map +7 -0
- package/dist/{chunk-4VY5NUK7.js → chunk-DRKV2LAC.js} +49 -146
- package/dist/chunk-DRKV2LAC.js.map +7 -0
- package/dist/{chunk-TEHZYXCJ.js → chunk-G56Z3JA5.js} +167 -164
- package/dist/chunk-G56Z3JA5.js.map +7 -0
- package/dist/{chunk-A2PNZIK7.js → chunk-INRXWU7L.js} +4 -4
- package/dist/{chunk-A2PNZIK7.js.map → chunk-INRXWU7L.js.map} +1 -1
- package/dist/chunk-TZJCHZPD.js +8626 -0
- package/dist/chunk-TZJCHZPD.js.map +7 -0
- package/dist/{conference-LE4T3ZNF.css → conference-AIOOA5ON.css} +2 -2
- package/dist/{ActiveSpeakerView-LW4WDBC6.css.map → conference-AIOOA5ON.css.map} +2 -2
- package/dist/{conference-YHO2J3Z6.js → conference-IKSFGLVK.js} +514 -629
- package/dist/conference-IKSFGLVK.js.map +7 -0
- package/dist/index.cjs.css +1 -1
- package/dist/index.cjs.css.map +2 -2
- package/dist/index.cjs.js +3022 -2927
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.css +1 -1
- package/dist/index.css.map +2 -2
- package/dist/index.js +4 -8
- package/dist/meta.cjs.json +736 -588
- package/dist/meta.esbuild.json +837 -692
- package/dist/{transcription-L6VBK75V.js → transcription-XYVVYRAS.js} +3 -3
- package/package.json +13 -9
- package/src/Accordion/Accordion.tsx +3 -3
- package/src/AudioLevel/AudioLevel.tsx +1 -1
- package/src/Avatar/Avatar.tsx +8 -3
- package/src/Button/Button.tsx +76 -20
- package/src/Checkbox/Checkbox.tsx +4 -4
- package/src/Collapsible/Collapsible.tsx +1 -1
- package/src/Divider/Divider.tsx +2 -2
- package/src/Divider/HorizontalDivider.stories.tsx +2 -2
- package/src/Divider/VerticalDivider.stories.tsx +1 -1
- package/src/Dropdown/Dropdown.stories.tsx +3 -3
- package/src/Dropdown/Dropdown.tsx +16 -14
- package/src/IconButton/IconButton.tsx +8 -7
- package/src/Input/Input.tsx +9 -8
- package/src/Input/PasswordInput.stories.tsx +2 -2
- package/src/Label/Label.tsx +1 -1
- package/src/Link/Link.tsx +4 -4
- package/src/Loading/Loading.tsx +7 -10
- package/src/Modal/Dialog.stories.tsx +2 -2
- package/src/Modal/DialogContent.tsx +3 -3
- package/src/Pagination/StyledPagination.tsx +4 -4
- package/src/Popover/Popover.stories.tsx +5 -5
- package/src/Popover/index.tsx +1 -1
- package/src/Prebuilt/App.jsx +101 -68
- package/src/Prebuilt/AppContext.jsx +1 -1
- package/src/Prebuilt/IconButton.jsx +2 -2
- package/src/Prebuilt/Prebuilt.stories.tsx +8 -2
- package/src/Prebuilt/common/constants.js +0 -1
- package/src/Prebuilt/common/utils.js +0 -6
- package/src/Prebuilt/components/AppData/AppData.jsx +7 -4
- package/src/Prebuilt/components/AppData/useUISettings.js +0 -4
- package/src/Prebuilt/components/AudioVideoToggle.jsx +73 -20
- package/src/Prebuilt/components/BottomActionSheet/BottomActionSheet.jsx +1 -1
- package/src/Prebuilt/components/Chat/Chat.jsx +6 -2
- package/src/Prebuilt/components/Chat/ChatBody.jsx +13 -11
- package/src/Prebuilt/components/Chat/ChatFooter.jsx +2 -2
- package/src/Prebuilt/components/Chat/ChatHeader.jsx +3 -3
- package/src/Prebuilt/components/Chat/ChatSelector.jsx +2 -2
- package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +6 -6
- package/src/Prebuilt/components/Chip.jsx +24 -0
- package/src/Prebuilt/components/Connection/ConnectionIndicator.jsx +6 -6
- package/src/Prebuilt/components/Connection/TileConnection.jsx +2 -2
- package/src/Prebuilt/components/Connection/connectionQualityUtils.js +4 -4
- package/src/Prebuilt/components/EmojiReaction.jsx +13 -10
- package/src/Prebuilt/components/ErrorBoundary.jsx +2 -2
- package/src/Prebuilt/components/Footer/ConferencingFooter.jsx +1 -4
- package/src/Prebuilt/components/FullPageProgress.jsx +5 -3
- package/src/Prebuilt/components/GoLiveButton.jsx +1 -4
- package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.jsx +2 -2
- package/src/Prebuilt/components/HMSVideo/PlayButton.jsx +1 -1
- package/src/Prebuilt/components/HMSVideo/VideoProgress.jsx +3 -3
- package/src/Prebuilt/components/HMSVideo/VideoTime.jsx +3 -1
- package/src/Prebuilt/components/HMSVideo/VolumeControl.jsx +1 -1
- package/src/Prebuilt/components/Header/AdditionalRoomState.jsx +17 -17
- package/src/Prebuilt/components/Header/AmbientMusic.jsx +1 -1
- package/src/Prebuilt/components/Header/ConferencingHeader.jsx +4 -6
- package/src/Prebuilt/components/Header/HeaderComponents.jsx +10 -5
- package/src/Prebuilt/components/Header/ParticipantFilter.jsx +2 -2
- package/src/Prebuilt/components/Header/ParticipantList.jsx +2 -2
- package/src/Prebuilt/components/Header/StreamActions.jsx +9 -19
- package/src/Prebuilt/components/Header/StreamingHeader.jsx +5 -6
- package/src/Prebuilt/components/HlsStatsOverlay.jsx +2 -2
- package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.jsx +102 -0
- package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.stories.tsx +40 -0
- package/src/Prebuilt/components/LeaveRoom.jsx +11 -11
- package/src/Prebuilt/components/MetaActions.jsx +2 -2
- package/src/Prebuilt/components/MoreSettings/BulkRoleChangeModal.jsx +2 -2
- package/src/Prebuilt/components/MoreSettings/ChangeSelfRole.jsx +1 -1
- package/src/Prebuilt/components/MoreSettings/MoreSettings.jsx +1 -0
- package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +69 -0
- package/src/Prebuilt/components/Notifications/Notifications.jsx +1 -3
- package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +108 -26
- package/src/Prebuilt/components/Notifications/ReconnectNotifications.jsx +1 -1
- package/src/Prebuilt/components/PIP/pipUtils.js +2 -2
- package/src/Prebuilt/components/Playlist/Playlist.jsx +4 -4
- package/src/Prebuilt/components/Playlist/PlaylistControls.jsx +3 -3
- package/src/Prebuilt/components/Playlist/PlaylistItem.jsx +3 -3
- package/src/Prebuilt/components/Playlist/VideoPlayer.jsx +4 -4
- package/src/Prebuilt/components/PostLeave.jsx +4 -4
- package/src/Prebuilt/components/Preview/PreviewContainer.jsx +17 -6
- package/src/Prebuilt/components/Preview/PreviewForm.jsx +74 -0
- package/src/Prebuilt/components/Preview/PreviewJoin.jsx +102 -39
- package/src/Prebuilt/components/RoleChangeModal.jsx +3 -3
- package/src/Prebuilt/components/ScreenshareDisplay.jsx +2 -2
- package/src/Prebuilt/components/Settings/DeviceSettings.jsx +3 -9
- package/src/Prebuilt/components/Settings/SettingsModal.jsx +8 -32
- package/src/Prebuilt/components/Settings/StartRecording.jsx +4 -12
- package/src/Prebuilt/components/Settings/SwitchWithLabel.jsx +2 -3
- package/src/Prebuilt/components/Settings/common.js +26 -0
- package/src/Prebuilt/components/StatsForNerds.jsx +5 -5
- package/src/Prebuilt/components/Streaming/Common.jsx +11 -11
- package/src/Prebuilt/components/Streaming/HLSStreaming.jsx +6 -12
- package/src/Prebuilt/components/Streaming/RTMPStreaming.jsx +4 -6
- package/src/Prebuilt/components/Streaming/StreamingLanding.jsx +4 -4
- package/src/Prebuilt/components/TileMenu.jsx +7 -7
- package/src/Prebuilt/components/Toast/ToastConfig.jsx +12 -20
- package/src/Prebuilt/components/conference.jsx +9 -2
- package/src/Prebuilt/components/hooks/useDropdownSelection.jsx +1 -4
- package/src/Prebuilt/components/pdfAnnotator/pdfErrorView.jsx +2 -2
- package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +1 -1
- package/src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx +1 -1
- package/src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx +2 -2
- package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +12 -20
- package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +4 -4
- package/src/Prebuilt/images/Logo.svg +8 -0
- package/src/Prebuilt/images/first_person.png +0 -0
- package/src/Prebuilt/images/rtmp.png +0 -0
- package/src/Prebuilt/index.d.ts +6 -1
- package/src/Prebuilt/layouts/HLSView.jsx +1 -1
- package/src/Prebuilt/layouts/InsetView.jsx +0 -3
- package/src/Prebuilt/layouts/NonPublisherView.jsx +2 -2
- package/src/Prebuilt/layouts/SidePane.jsx +1 -1
- package/src/Prebuilt/layouts/WaitingView.jsx +2 -2
- package/src/Prebuilt/layouts/mainView.jsx +42 -5
- package/src/Prebuilt/plugins/FlyingEmoji.jsx +2 -2
- package/src/Prebuilt/plugins/VirtualBackground/VirtualBackground.jsx +1 -0
- package/src/Prebuilt/plugins/whiteboard/ToggleWhiteboard.jsx +1 -3
- package/src/Prebuilt/primitives/DialogContent.jsx +4 -4
- package/src/Prebuilt/primitives/DropdownTrigger.jsx +3 -3
- package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +33 -0
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +57 -0
- package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +26 -0
- package/src/Progress/index.tsx +2 -2
- package/src/RadioGroup/RadioGroup.tsx +3 -3
- package/src/ReactSelect/ReactSelect.stories.tsx +7 -7
- package/src/ReactSelect/ReactSelect.tsx +8 -8
- package/src/Select/Select.tsx +6 -6
- package/src/Slider/Slider.tsx +5 -5
- package/src/Stats/Stats.tsx +12 -2
- package/src/Stats/StyledStats.tsx +3 -3
- package/src/Switch/Switch.tsx +5 -5
- package/src/Tabs/Tabs.stories.tsx +2 -2
- package/src/Tabs/Tabs.tsx +2 -2
- package/src/Text/Text.tsx +2 -2
- package/src/Theme/ThemeProvider.tsx +4 -7
- package/src/Theme/ThemeStory.jsx +17 -19
- package/src/Theme/base.config.ts +31 -59
- package/src/Theme/index.tsx +0 -1
- package/src/Theme/stitches.config.ts +2 -7
- package/src/TileMenu/StyledMenuTile.tsx +9 -8
- package/src/Toast/Toast.tsx +10 -9
- package/src/Tooltip/Tooltip.stories.tsx +1 -1
- package/src/Tooltip/Tooltip.tsx +4 -4
- package/src/Video/Video.tsx +1 -1
- package/src/VideoTile/StyledVideoTile.tsx +12 -12
- package/src/assets/android-perm-0.png +0 -0
- package/src/assets/android-perm-1.png +0 -0
- package/src/assets/ios-perm-0.png +0 -0
- package/src/fixtures/chats.ts +1 -1
- package/dist/HLSView-ZYNT3HJD.js.map +0 -7
- package/dist/Theme/themes.d.ts +0 -64
- package/dist/chunk-4VY5NUK7.js.map +0 -7
- package/dist/chunk-BSQIN5RC.js +0 -65
- package/dist/chunk-BSQIN5RC.js.map +0 -7
- package/dist/chunk-TEHZYXCJ.js.map +0 -7
- package/dist/chunk-ZET2HMGS.js +0 -8331
- package/dist/chunk-ZET2HMGS.js.map +0 -7
- package/dist/conference-YHO2J3Z6.js.map +0 -7
- package/src/Prebuilt/components/Preview/PreviewName.jsx +0 -37
- package/src/Prebuilt/components/Streaming/RTMPIcon.jsx +0 -69
- package/src/Prebuilt/hms.js +0 -7
- package/src/Prebuilt/plugins/confetti.jsx +0 -60
- package/src/Theme/themes.ts +0 -70
- /package/dist/{ActiveSpeakerView-G32BDM5F.js.map → ActiveSpeakerView-N7C6WL27.js.map} +0 -0
- /package/dist/{PinnedTrackView-GTXL2UTS.js.map → PinnedTrackView-6N6N5WOF.js.map} +0 -0
- /package/dist/{transcription-L6VBK75V.js.map → transcription-XYVVYRAS.js.map} +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { Fragment, useCallback, useEffect, useState } from 'react';
|
2
|
-
import {
|
2
|
+
import { selectRoomID, useHMSActions, useHMSStore, useRecordingStreaming } from '@100mslive/react-sdk';
|
3
3
|
import {
|
4
4
|
EndStreamIcon,
|
5
5
|
EyeOpenIcon,
|
@@ -14,7 +14,6 @@ import { Box, Button, Flex, Loading, Text } from '../../../';
|
|
14
14
|
import { Container, ContentBody, ContentHeader, ErrorText, RecordStream } from './Common';
|
15
15
|
import { useSetAppDataByKey } from '../AppData/useUISettings';
|
16
16
|
import { useFilteredRoles } from '../../common/hooks';
|
17
|
-
import { getDefaultMeetingUrl } from '../../common/utils';
|
18
17
|
import { APP_DATA } from '../../common/constants';
|
19
18
|
|
20
19
|
const getCardData = (roleName, roomId) => {
|
@@ -57,19 +56,19 @@ const Card = ({ title, icon, link, content, isHLSRunning, order = 0 }) => {
|
|
57
56
|
<Box
|
58
57
|
key={title}
|
59
58
|
css={{
|
60
|
-
backgroundColor: '$
|
59
|
+
backgroundColor: '$surface_bright',
|
61
60
|
padding: '$10',
|
62
61
|
order,
|
63
62
|
borderRadius: '$2',
|
64
63
|
}}
|
65
64
|
>
|
66
|
-
<Flex align="center" gap="2" css={{ color: '$
|
65
|
+
<Flex align="center" gap="2" css={{ color: '$primary_bright' }}>
|
67
66
|
{icon}
|
68
67
|
<Text variant="h6" css={{ fontWeight: '$semiBold' }}>
|
69
68
|
{title}
|
70
69
|
</Text>
|
71
70
|
</Flex>
|
72
|
-
<Text variant="sm" css={{ color: '$
|
71
|
+
<Text variant="sm" css={{ color: '$on_surface_medium', mt: '$6' }}>
|
73
72
|
{content}
|
74
73
|
</Text>
|
75
74
|
<Button
|
@@ -128,7 +127,6 @@ const StartHLS = () => {
|
|
128
127
|
const [record, setRecord] = useState(false);
|
129
128
|
const [error, setError] = useState(false);
|
130
129
|
const hmsActions = useHMSActions();
|
131
|
-
const recordingUrl = useHMSStore(selectAppData(APP_DATA.recordingUrl));
|
132
130
|
const [isHLSStarted, setHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
|
133
131
|
const startHLS = useCallback(
|
134
132
|
async variants => {
|
@@ -143,15 +141,11 @@ const StartHLS = () => {
|
|
143
141
|
recording: { hlsVod: record, singleFilePerLayer: record },
|
144
142
|
});
|
145
143
|
} catch (error) {
|
146
|
-
if (error.message.includes('invalid input')) {
|
147
|
-
await startHLS([{ meetingURL: recordingUrl || getDefaultMeetingUrl() }]);
|
148
|
-
return;
|
149
|
-
}
|
150
144
|
setHLSStarted(false);
|
151
145
|
setError(error.message);
|
152
146
|
}
|
153
147
|
},
|
154
|
-
[hmsActions, record, isHLSStarted, setHLSStarted
|
148
|
+
[hmsActions, record, isHLSStarted, setHLSStarted],
|
155
149
|
);
|
156
150
|
|
157
151
|
return (
|
@@ -174,7 +168,7 @@ const StartHLS = () => {
|
|
174
168
|
<Text>
|
175
169
|
<InfoIcon width={16} height={16} />
|
176
170
|
</Text>
|
177
|
-
<Text variant="tiny" color="$
|
171
|
+
<Text variant="tiny" color="$on_surface_medium" css={{ mx: '$8' }}>
|
178
172
|
You cannot start recording once the stream starts, you will have to stop the stream to enable recording.
|
179
173
|
</Text>
|
180
174
|
</Flex>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { useEffect, useRef, useState } from 'react';
|
2
|
-
import {
|
2
|
+
import { useHMSActions, useRecordingStreaming } from '@100mslive/react-sdk';
|
3
3
|
import { AddCircleIcon, EndStreamIcon, GoLiveIcon, PencilIcon, SettingsIcon, TrashIcon } from '@100mslive/react-icons';
|
4
4
|
import { Accordion, Box, Button, Flex, Input, Label, Loading, Text } from '../../../';
|
5
5
|
import { Container, ContentBody, ContentHeader, ErrorText, RecordStream } from './Common';
|
@@ -37,7 +37,6 @@ const StartRTMP = () => {
|
|
37
37
|
],
|
38
38
|
);
|
39
39
|
const hmsActions = useHMSActions();
|
40
|
-
const recordingUrl = useHMSStore(selectAppData(APP_DATA.recordingUrl));
|
41
40
|
const [error, setError] = useState(false);
|
42
41
|
const [record, setRecord] = useState(false);
|
43
42
|
const [resolution, setResolution] = useState(RTMP_RECORD_DEFAULT_RESOLUTION);
|
@@ -61,7 +60,7 @@ const StartRTMP = () => {
|
|
61
60
|
value={rtmp.id}
|
62
61
|
key={rtmp.id}
|
63
62
|
css={{
|
64
|
-
border: '2px solid $
|
63
|
+
border: '2px solid $surface_bright !important',
|
65
64
|
r: '$1',
|
66
65
|
my: '$4',
|
67
66
|
}}
|
@@ -131,7 +130,6 @@ const StartRTMP = () => {
|
|
131
130
|
const urls = hasRTMPURL ? rtmpStreams.map(value => `${value.rtmpURL}/${value.streamKey}`) : [];
|
132
131
|
await hmsActions.startRTMPOrRecording({
|
133
132
|
rtmpURLs: urls,
|
134
|
-
meetingURL: recordingUrl,
|
135
133
|
resolution: getResolution(resolution),
|
136
134
|
record: record,
|
137
135
|
});
|
@@ -201,7 +199,7 @@ const ActionIcon = ({ icon: Icon, onClick }) => {
|
|
201
199
|
|
202
200
|
const FormLabel = ({ id, children }) => {
|
203
201
|
return (
|
204
|
-
<Label htmlFor={id} css={{ color: '$
|
202
|
+
<Label htmlFor={id} css={{ color: '$on_surface_high', my: '$4', fontSize: '$sm' }}>
|
205
203
|
{children}
|
206
204
|
</Label>
|
207
205
|
);
|
@@ -261,7 +259,7 @@ const RTMPForm = ({ rtmpURL, id, streamKey, setRTMPStreams, testId }) => {
|
|
261
259
|
|
262
260
|
const Asterik = () => {
|
263
261
|
return (
|
264
|
-
<Text variant="sm" as="span" css={{ color: '$
|
262
|
+
<Text variant="sm" as="span" css={{ color: '$alert_error_default', mx: '$2' }}>
|
265
263
|
*
|
266
264
|
</Text>
|
267
265
|
);
|
@@ -4,9 +4,9 @@ import { ColoredHandIcon, CrossIcon, GoLiveIcon } from '@100mslive/react-icons';
|
|
4
4
|
import { Box, Flex } from '../../../Layout';
|
5
5
|
import { Text } from '../../../Text';
|
6
6
|
import IconButton from '../../IconButton';
|
7
|
+
import RTMPIcon from '../../images/rtmp.png';
|
7
8
|
import { StreamCard } from './Common';
|
8
9
|
import { HLSStreaming } from './HLSStreaming';
|
9
|
-
import { RTMPIcon } from './RTMPIcon';
|
10
10
|
import { RTMPStreaming } from './RTMPStreaming';
|
11
11
|
import { useSidepaneToggle } from '../AppData/useSidepane';
|
12
12
|
import { SIDE_PANE_OPTIONS } from '../../common/constants';
|
@@ -30,7 +30,7 @@ export const StreamingLanding = () => {
|
|
30
30
|
css={{
|
31
31
|
alignSelf: 'center',
|
32
32
|
p: '$4',
|
33
|
-
bg: '$
|
33
|
+
bg: '$surface_bright',
|
34
34
|
r: '$round',
|
35
35
|
}}
|
36
36
|
>
|
@@ -44,7 +44,7 @@ export const StreamingLanding = () => {
|
|
44
44
|
<CrossIcon />
|
45
45
|
</IconButton>
|
46
46
|
</Flex>
|
47
|
-
<Text variant="tiny" color="$
|
47
|
+
<Text variant="tiny" color="$on_surface_medium">
|
48
48
|
Start Streaming
|
49
49
|
</Text>
|
50
50
|
{permissions?.hlsStreaming && (
|
@@ -66,7 +66,7 @@ export const StreamingLanding = () => {
|
|
66
66
|
onClick={() => {
|
67
67
|
setShowRTMP(true);
|
68
68
|
}}
|
69
|
-
|
69
|
+
imgSrc={RTMPIcon}
|
70
70
|
/>
|
71
71
|
)}
|
72
72
|
{showHLS && <HLSStreaming onBack={() => setShowHLS(false)} />}
|
@@ -76,7 +76,7 @@ const PinActions = ({ audioTrackID, videoTrackID }) => {
|
|
76
76
|
onClick={() => (isTilePinned ? setPinnedTrackId() : setPinnedTrackId(videoTrackID || audioTrackID))}
|
77
77
|
>
|
78
78
|
<PinIcon />
|
79
|
-
<span>{
|
79
|
+
<span>{isTilePinned ? 'Unpin' : 'Pin'} Tile for myself</span>
|
80
80
|
</StyledMenuTile.ItemButton>
|
81
81
|
</>
|
82
82
|
);
|
@@ -142,7 +142,7 @@ const TileMenu = ({ audioTrackID, videoTrackID, peerID, isScreenshare = false })
|
|
142
142
|
data-testid={isVideoEnabled ? 'mute_video_participant_btn' : 'unmute_video_participant_btn'}
|
143
143
|
>
|
144
144
|
{isVideoEnabled ? <VideoOnIcon /> : <VideoOffIcon />}
|
145
|
-
<span>{
|
145
|
+
<span>{isVideoEnabled ? 'Mute' : 'Request Unmute'}</span>
|
146
146
|
</StyledMenuTile.ItemButton>
|
147
147
|
) : null}
|
148
148
|
{toggleAudio ? (
|
@@ -151,7 +151,7 @@ const TileMenu = ({ audioTrackID, videoTrackID, peerID, isScreenshare = false })
|
|
151
151
|
data-testid={isVideoEnabled ? 'mute_audio_participant_btn' : 'unmute_audio_participant_btn'}
|
152
152
|
>
|
153
153
|
{isAudioEnabled ? <MicOnIcon /> : <MicOffIcon />}
|
154
|
-
<span>{
|
154
|
+
<span>{isAudioEnabled ? 'Mute' : 'Request Unmute'}</span>
|
155
155
|
</StyledMenuTile.ItemButton>
|
156
156
|
) : null}
|
157
157
|
{audioTrackID ? (
|
@@ -211,7 +211,7 @@ const SimulcastLayers = ({ trackId }) => {
|
|
211
211
|
const currentLayer = track.layerDefinitions.find(layer => layer.layer === track.layer);
|
212
212
|
return (
|
213
213
|
<Fragment>
|
214
|
-
<StyledMenuTile.ItemButton css={{ color: '$
|
214
|
+
<StyledMenuTile.ItemButton css={{ color: '$on_surface_medium', cursor: 'default' }}>
|
215
215
|
Select maximum resolution
|
216
216
|
</StyledMenuTile.ItemButton>
|
217
217
|
{track.layerDefinitions.map(layer => {
|
@@ -239,14 +239,14 @@ const SimulcastLayers = ({ trackId }) => {
|
|
239
239
|
>
|
240
240
|
{layer.layer}
|
241
241
|
</Text>
|
242
|
-
<Text as="span" variant="xs" css={{ color: '$
|
242
|
+
<Text as="span" variant="xs" css={{ color: '$on_surface_medium' }}>
|
243
243
|
{layer.resolution.width}x{layer.resolution.height}
|
244
244
|
</Text>
|
245
245
|
</StyledMenuTile.ItemButton>
|
246
246
|
);
|
247
247
|
})}
|
248
248
|
<StyledMenuTile.ItemButton>
|
249
|
-
<Text as="span" variant="xs" css={{ color: '$
|
249
|
+
<Text as="span" variant="xs" css={{ color: '$on_surface_medium' }}>
|
250
250
|
Currently streaming:
|
251
251
|
<Text
|
252
252
|
as="span"
|
@@ -254,7 +254,7 @@ const SimulcastLayers = ({ trackId }) => {
|
|
254
254
|
css={{
|
255
255
|
fontWeight: '$semiBold',
|
256
256
|
textTransform: 'capitalize',
|
257
|
-
color: '$
|
257
|
+
color: '$on_surface_medium',
|
258
258
|
ml: '$2',
|
259
259
|
}}
|
260
260
|
>
|
@@ -1,31 +1,23 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { selectAppData } from '@100mslive/react-sdk';
|
3
2
|
import { ChatIcon, ConnectivityIcon, HandIcon, PersonIcon, PoorConnectivityIcon } from '@100mslive/react-icons';
|
4
3
|
import { Button } from '../../../Button';
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
|
8
|
-
const isChatOpen = () => {
|
9
|
-
return hmsStore.getState(selectAppData(APP_DATA.sidePane)) === SIDE_PANE_OPTIONS.CHAT;
|
10
|
-
};
|
4
|
+
import { useIsSidepaneTypeOpen, useSidepaneToggle } from '../AppData/useSidepane';
|
5
|
+
import { SIDE_PANE_OPTIONS } from '../../common/constants';
|
11
6
|
|
12
7
|
const ChatAction = React.forwardRef((_, ref) => {
|
8
|
+
const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
|
9
|
+
const isChatOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.CHAT);
|
10
|
+
|
11
|
+
if (isChatOpen) {
|
12
|
+
return null;
|
13
|
+
}
|
14
|
+
|
13
15
|
return (
|
14
|
-
<Button
|
15
|
-
outlined
|
16
|
-
as="div"
|
17
|
-
variant="standard"
|
18
|
-
css={{ w: 'max-content' }}
|
19
|
-
onClick={() => {
|
20
|
-
hmsActions.setAppData(APP_DATA.sidePane, SIDE_PANE_OPTIONS.CHAT);
|
21
|
-
}}
|
22
|
-
ref={ref}
|
23
|
-
>
|
16
|
+
<Button outlined as="div" variant="standard" css={{ w: 'max-content' }} onClick={toggleChat} ref={ref}>
|
24
17
|
Open Chat
|
25
18
|
</Button>
|
26
19
|
);
|
27
20
|
});
|
28
|
-
|
29
21
|
export const ToastConfig = {
|
30
22
|
PEER_LIST: {
|
31
23
|
single: function (notification) {
|
@@ -98,14 +90,14 @@ export const ToastConfig = {
|
|
98
90
|
return {
|
99
91
|
title: `New message from ${notification.data?.senderName}`,
|
100
92
|
icon: <ChatIcon />,
|
101
|
-
action:
|
93
|
+
action: <ChatAction />,
|
102
94
|
};
|
103
95
|
},
|
104
96
|
multiple: notifications => {
|
105
97
|
return {
|
106
98
|
title: `${notifications.length} new messages`,
|
107
99
|
icon: <ChatIcon />,
|
108
|
-
action:
|
100
|
+
action: <ChatAction />,
|
109
101
|
};
|
110
102
|
},
|
111
103
|
},
|
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
useHMSActions,
|
10
10
|
useHMSStore,
|
11
11
|
} from '@100mslive/react-sdk';
|
12
|
+
import { HLSFailureModal } from './Notifications/HLSFailureModal';
|
12
13
|
import { Box, Flex } from '../../Layout';
|
13
14
|
import { useHMSPrebuiltContext } from '../AppContext';
|
14
15
|
import { ConferenceMainView } from '../layouts/mainView';
|
@@ -16,7 +17,7 @@ import { Footer } from './Footer';
|
|
16
17
|
import FullPageProgress from './FullPageProgress';
|
17
18
|
import { Header } from './Header';
|
18
19
|
import { RoleChangeRequestModal } from './RoleChangeRequestModal';
|
19
|
-
import { useAuthToken, useIsHeadless } from './AppData/useUISettings';
|
20
|
+
import { useAuthToken, useIsHeadless, useSetAppDataByKey } from './AppData/useUISettings';
|
20
21
|
import { useNavigation } from './hooks/useNavigation';
|
21
22
|
import { useSkipPreview } from './hooks/useSkipPreview';
|
22
23
|
import { APP_DATA, EMOJI_REACTION_TYPE, isAndroid, isIOS, isIPadOS } from '../common/constants';
|
@@ -38,6 +39,7 @@ const Conference = () => {
|
|
38
39
|
const footerRef = useRef();
|
39
40
|
const dropdownListRef = useRef();
|
40
41
|
const performAutoHide = hideControls && (isAndroid || isIOS || isIPadOS);
|
42
|
+
const [isHLSStarted] = useSetAppDataByKey(APP_DATA.hlsStarted);
|
41
43
|
|
42
44
|
const toggleControls = () => {
|
43
45
|
if (dropdownListRef.current?.length === 0) {
|
@@ -105,7 +107,11 @@ const Conference = () => {
|
|
105
107
|
}, [isHeadless, hmsActions]);
|
106
108
|
|
107
109
|
if (!isConnectedToRoom) {
|
108
|
-
return <FullPageProgress />;
|
110
|
+
return <FullPageProgress loadingText="Joining..." />;
|
111
|
+
}
|
112
|
+
|
113
|
+
if (isHLSStarted) {
|
114
|
+
return <FullPageProgress loadingText="Starting live stream..." />;
|
109
115
|
}
|
110
116
|
|
111
117
|
return (
|
@@ -157,6 +163,7 @@ const Conference = () => {
|
|
157
163
|
</Box>
|
158
164
|
)}
|
159
165
|
<RoleChangeRequestModal />
|
166
|
+
<HLSFailureModal />
|
160
167
|
</Flex>
|
161
168
|
);
|
162
169
|
};
|
@@ -9,7 +9,7 @@ export const PdfErrorView = ({ isPDFUrlValid }) => {
|
|
9
9
|
<DialogRow
|
10
10
|
css={{
|
11
11
|
mt: '-$8',
|
12
|
-
color: '$
|
12
|
+
color: '$alert_error_default',
|
13
13
|
justifyContent: 'start',
|
14
14
|
}}
|
15
15
|
>
|
@@ -18,7 +18,7 @@ export const PdfErrorView = ({ isPDFUrlValid }) => {
|
|
18
18
|
variant="caption"
|
19
19
|
css={{
|
20
20
|
pl: '$1',
|
21
|
-
color: '$
|
21
|
+
color: '$alert_error_default',
|
22
22
|
}}
|
23
23
|
>
|
24
24
|
Please enter a valid PDF URL
|
@@ -9,10 +9,10 @@ export const PDFInfo = () => {
|
|
9
9
|
css={{
|
10
10
|
px: '$8',
|
11
11
|
py: '$3',
|
12
|
-
bg: '$
|
12
|
+
bg: '$surface_bright',
|
13
13
|
r: '$1',
|
14
14
|
outline: 'none',
|
15
|
-
border: '1px solid $
|
15
|
+
border: '1px solid $border_bright',
|
16
16
|
minHeight: '$11',
|
17
17
|
}}
|
18
18
|
>
|
@@ -89,9 +89,9 @@ export function ShareScreenOptions() {
|
|
89
89
|
p: '$6',
|
90
90
|
display: 'flex',
|
91
91
|
justifyContent: 'center',
|
92
|
-
border: '1px solid $
|
92
|
+
border: '1px solid $border_bright',
|
93
93
|
r: '$2',
|
94
|
-
bg: '$
|
94
|
+
bg: '$surface_brighter',
|
95
95
|
pb: '0',
|
96
96
|
}}
|
97
97
|
>
|
@@ -109,7 +109,7 @@ export function ShareScreenOptions() {
|
|
109
109
|
<Text
|
110
110
|
variant="caption"
|
111
111
|
css={{
|
112
|
-
c: '$
|
112
|
+
c: '$on_surface_low',
|
113
113
|
textAlign: 'center',
|
114
114
|
}}
|
115
115
|
>
|
@@ -133,9 +133,9 @@ export function ShareScreenOptions() {
|
|
133
133
|
p: '$6',
|
134
134
|
display: 'flex',
|
135
135
|
justifyContent: 'center',
|
136
|
-
border: '$
|
136
|
+
border: '$border_bright 1px solid',
|
137
137
|
r: '$2',
|
138
|
-
bg: '$
|
138
|
+
bg: '$surface_bright',
|
139
139
|
pb: '0',
|
140
140
|
}}
|
141
141
|
>
|
@@ -149,33 +149,25 @@ export function ShareScreenOptions() {
|
|
149
149
|
/>
|
150
150
|
<Flex
|
151
151
|
direction="row"
|
152
|
+
align="center"
|
152
153
|
css={{
|
153
154
|
position: 'absolute',
|
154
155
|
top: '29%',
|
155
156
|
left: '54%',
|
156
157
|
padding: '$2 $4',
|
157
158
|
r: '$2',
|
158
|
-
bg: '$
|
159
|
+
bg: '$primary_bright',
|
159
160
|
zIndex: '2',
|
161
|
+
gap: '$2',
|
160
162
|
}}
|
161
163
|
>
|
162
|
-
<
|
163
|
-
|
164
|
-
w: '$10',
|
165
|
-
h: '$8',
|
166
|
-
'&:hover': {
|
167
|
-
bg: '$transparent !important',
|
168
|
-
border: 'none',
|
169
|
-
},
|
170
|
-
}}
|
171
|
-
>
|
172
|
-
<StarIcon />
|
173
|
-
</IconButton>
|
164
|
+
<StarIcon height={14} width={14} />
|
165
|
+
|
174
166
|
<Text
|
175
167
|
variant="xs"
|
176
168
|
css={{
|
177
169
|
fontWeight: '$semiBold',
|
178
|
-
c: '$
|
170
|
+
c: '$on_primary_high',
|
179
171
|
pr: '$4',
|
180
172
|
}}
|
181
173
|
>
|
@@ -188,7 +180,7 @@ export function ShareScreenOptions() {
|
|
188
180
|
<Text
|
189
181
|
variant="caption"
|
190
182
|
css={{
|
191
|
-
c: '$
|
183
|
+
c: '$on_surface_low',
|
192
184
|
textAlign: 'center',
|
193
185
|
}}
|
194
186
|
>
|
@@ -32,17 +32,17 @@ export const UploadedFile = ({
|
|
32
32
|
<DialogRow
|
33
33
|
css={{
|
34
34
|
fontFamily: '$sans',
|
35
|
-
bg: '$
|
35
|
+
bg: '$surface_bright',
|
36
36
|
r: '$1',
|
37
37
|
outline: 'none',
|
38
|
-
border: '1px solid $
|
38
|
+
border: '1px solid $border_bright',
|
39
39
|
p: '$4 $6',
|
40
40
|
minHeight: '$11',
|
41
|
-
c: '$
|
41
|
+
c: '$on_primary_high',
|
42
42
|
fs: '$md',
|
43
43
|
w: '100%',
|
44
44
|
'&:focus': {
|
45
|
-
boxShadow: '0 0 0 1px $colors$
|
45
|
+
boxShadow: '0 0 0 1px $colors$primary_default',
|
46
46
|
border: '1px solid $transparent',
|
47
47
|
},
|
48
48
|
mb: 0,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<svg width="32" height="42" viewBox="0 0 32 42" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<rect x="14.528" y="5.91187" width="2.944" height="30.176" fill="#538DFF"/>
|
3
|
+
<rect x="22.2692" y="7.19727" width="2.944" height="30.176" transform="rotate(30 22.2692 7.19727)" fill="#538DFF"/>
|
4
|
+
<rect x="31.088" y="19.5278" width="2.944" height="30.176" transform="rotate(90 31.088 19.5278)" fill="#538DFF"/>
|
5
|
+
<rect x="29.8026" y="27.269" width="2.944" height="30.176" transform="rotate(120 29.8026 27.269)" fill="#538DFF"/>
|
6
|
+
<rect x="24.8188" y="33.3304" width="2.944" height="30.176" transform="rotate(150 24.8188 33.3304)" fill="#538DFF"/>
|
7
|
+
<rect x="28.3306" y="12.181" width="2.944" height="30.176" transform="rotate(60 28.3306 12.181)" fill="#538DFF"/>
|
8
|
+
</svg>
|
Binary file
|
Binary file
|
package/src/Prebuilt/index.d.ts
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
import type { Screens, Theme, Typography } from '@100mslive/types-prebuilt';
|
2
3
|
|
3
4
|
export declare const HMSPrebuilt: React.FC<{
|
4
5
|
roomCode: string;
|
5
6
|
logo?: {
|
6
7
|
url: string;
|
7
8
|
};
|
9
|
+
themes?: Theme[];
|
10
|
+
typography?: Typography;
|
11
|
+
screens?: Screens;
|
8
12
|
options?: {
|
9
|
-
|
13
|
+
endpoints?: {
|
10
14
|
tokenByRoomIdRole?: string;
|
11
15
|
tokenByRoomCode?: string;
|
12
16
|
init?: string;
|
17
|
+
roomLayout?: string;
|
13
18
|
};
|
14
19
|
};
|
15
20
|
}>;
|
@@ -12,7 +12,7 @@ export const NonPublisherView = React.memo(({ message }) => {
|
|
12
12
|
maxWidth: '96%',
|
13
13
|
h: '100%',
|
14
14
|
m: 'auto',
|
15
|
-
background: '$
|
15
|
+
background: '$surface_default',
|
16
16
|
borderRadius: '$3',
|
17
17
|
}}
|
18
18
|
data-testid="non_publisher_view"
|
@@ -41,7 +41,7 @@ export const NonPublisherView = React.memo(({ message }) => {
|
|
41
41
|
<Text color="white" variant="h6" css={{ '@md': { fontSize: '$md' } }}>
|
42
42
|
{message}
|
43
43
|
</Text>
|
44
|
-
<Text color="$
|
44
|
+
<Text color="$on_surface_medium" css={{ mt: '$4', '@md': { fontSize: '$sm' } }}>
|
45
45
|
Please go to dashboard and reconfigure role settings or contact the role admin.
|
46
46
|
</Text>
|
47
47
|
</Flex>
|
@@ -12,7 +12,7 @@ export const WaitingView = React.memo(() => {
|
|
12
12
|
maxWidth: '96%',
|
13
13
|
h: '100%',
|
14
14
|
m: 'auto',
|
15
|
-
background: '$
|
15
|
+
background: '$surface_default',
|
16
16
|
borderRadius: '$3',
|
17
17
|
}}
|
18
18
|
data-testid="waiting_view"
|
@@ -41,7 +41,7 @@ export const WaitingView = React.memo(() => {
|
|
41
41
|
<Text color="white" variant="h6" css={{ '@md': { fontSize: '$md' } }}>
|
42
42
|
Please wait
|
43
43
|
</Text>
|
44
|
-
<Text color="$
|
44
|
+
<Text color="$on_surface_medium" css={{ mt: '$4', '@md': { fontSize: '$sm' } }}>
|
45
45
|
Sit back and relax till others let you join.
|
46
46
|
</Text>
|
47
47
|
</Flex>
|