@100mslive/roomkit-react 0.1.0 → 0.1.2-alpha.0
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-H3VYXANB.js → ActiveSpeakerView-4XPIRZOK.js} +6 -6
- package/dist/{HLSView-6BVBCQM7.css → ActiveSpeakerView-ADEYHQMU.css} +2 -2
- package/dist/{PinnedTrackView-QQ5FDXJX.css.map → ActiveSpeakerView-ADEYHQMU.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/{conference-KN6OKGDU.css → HLSView-DWEEMZ6Z.css} +2 -2
- package/dist/{HLSView-6BVBCQM7.css.map → HLSView-DWEEMZ6Z.css.map} +2 -2
- package/dist/{HLSView-3RDXRV7Y.js → HLSView-I26CVF5U.js} +16 -16
- package/dist/HLSView-I26CVF5U.js.map +7 -0
- 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-QQ5FDXJX.css → PinnedTrackView-5DPVVOZW.css} +2 -2
- package/dist/{conference-KN6OKGDU.css.map → PinnedTrackView-5DPVVOZW.css.map} +2 -2
- package/dist/{PinnedTrackView-453PELNU.js → PinnedTrackView-GGTCNH5V.js} +6 -6
- 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-LHYBWUT5.js → VirtualBackground-ZRRE4DUA.js} +4 -3
- package/dist/{VirtualBackground-LHYBWUT5.js.map → VirtualBackground-ZRRE4DUA.js.map} +2 -2
- package/dist/{chunk-KYYP6ZVK.js → chunk-4ISMCWQA.js} +49 -146
- package/dist/chunk-4ISMCWQA.js.map +7 -0
- package/dist/{chunk-7YUYZ64D.js → chunk-KKLZ7K2L.js} +577 -898
- package/dist/chunk-KKLZ7K2L.js.map +7 -0
- package/dist/{chunk-HCAGFNXW.js → chunk-LUND6FLY.js} +1490 -1134
- package/dist/chunk-LUND6FLY.js.map +7 -0
- package/dist/chunk-MYK3T45M.js +58 -0
- package/dist/chunk-MYK3T45M.js.map +7 -0
- package/dist/{chunk-XRJXE6UO.js → chunk-THORW2WT.js} +4 -4
- package/dist/{chunk-XRJXE6UO.js.map → chunk-THORW2WT.js.map} +1 -1
- package/dist/{conference-IDNRO4WK.js → conference-5TDUAQ6K.js} +593 -532
- package/dist/conference-5TDUAQ6K.js.map +7 -0
- package/dist/{ActiveSpeakerView-REZLWPPI.css → conference-BDCDGBIS.css} +2 -2
- package/dist/{ActiveSpeakerView-REZLWPPI.css.map → conference-BDCDGBIS.css.map} +2 -2
- package/dist/index.cjs.css +1 -1
- package/dist/index.cjs.css.map +2 -2
- package/dist/index.cjs.js +3450 -3418
- 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 +761 -490
- package/dist/meta.esbuild.json +857 -589
- package/dist/{transcription-BTSB7FZH.js → transcription-PYTSSAOB.js} +3 -3
- package/package.json +14 -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/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/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 +100 -37
- 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 +11 -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-3RDXRV7Y.js.map +0 -7
- package/dist/Theme/themes.d.ts +0 -64
- package/dist/chunk-7YUYZ64D.js.map +0 -7
- package/dist/chunk-HCAGFNXW.js.map +0 -7
- package/dist/chunk-KYYP6ZVK.js.map +0 -7
- package/dist/chunk-ULXGBUSC.js +0 -65
- package/dist/chunk-ULXGBUSC.js.map +0 -7
- package/dist/conference-IDNRO4WK.js.map +0 -7
- package/src/Prebuilt/components/Preview/PreviewName.jsx +0 -37
- package/src/Prebuilt/components/Streaming/RTMPIcon.jsx +0 -24
- 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-H3VYXANB.js.map → ActiveSpeakerView-4XPIRZOK.js.map} +0 -0
- /package/dist/{PinnedTrackView-453PELNU.js.map → PinnedTrackView-GGTCNH5V.js.map} +0 -0
- /package/dist/{transcription-BTSB7FZH.js.map → transcription-PYTSSAOB.js.map} +0 -0
@@ -1,48 +1,66 @@
|
|
1
1
|
import React, { Fragment, Suspense, useCallback, useEffect, useState } from 'react';
|
2
2
|
import {
|
3
|
+
HMSRoomState,
|
3
4
|
selectIsLocalVideoEnabled,
|
4
5
|
selectLocalPeer,
|
6
|
+
selectRoomState,
|
5
7
|
selectVideoTrackByID,
|
6
8
|
useAVToggle,
|
7
9
|
useHMSStore,
|
10
|
+
useParticipants,
|
8
11
|
usePreviewJoin,
|
12
|
+
useRecordingStreaming,
|
9
13
|
} from '@100mslive/react-sdk';
|
10
|
-
import { SettingsIcon } from '@100mslive/react-icons';
|
14
|
+
import { MicOffIcon, SettingsIcon } from '@100mslive/react-icons';
|
11
15
|
import {
|
12
16
|
Avatar,
|
17
|
+
Box,
|
13
18
|
Flex,
|
14
19
|
flexCenter,
|
15
|
-
Loading,
|
16
20
|
styled,
|
17
21
|
StyledVideoTile,
|
18
22
|
Text,
|
19
|
-
textEllipsis,
|
20
23
|
useBorderAudioLevel,
|
21
24
|
useTheme,
|
22
25
|
Video,
|
23
26
|
} from '../../../';
|
24
27
|
import { useHMSPrebuiltContext } from '../../AppContext';
|
25
28
|
import IconButton from '../../IconButton';
|
29
|
+
import { useRoomLayout } from '../../provider/roomLayoutProvider';
|
26
30
|
import { AudioVideoToggle } from '../AudioVideoToggle';
|
31
|
+
import Chip from '../Chip';
|
27
32
|
import TileConnection from '../Connection/TileConnection';
|
33
|
+
import FullPageProgress from '../FullPageProgress';
|
34
|
+
import { Logo } from '../Header/HeaderComponents';
|
28
35
|
import SettingsModal from '../Settings/SettingsModal';
|
29
|
-
import
|
36
|
+
import PreviewForm from './PreviewForm';
|
30
37
|
import { useAuthToken, useUISettings } from '../AppData/useUISettings';
|
31
38
|
import { defaultPreviewPreference, UserPreferencesKeys, useUserPreferences } from '../hooks/useUserPreferences';
|
32
39
|
import { UI_SETTINGS } from '../../common/constants';
|
33
40
|
|
34
41
|
const VirtualBackground = React.lazy(() => import('../../plugins/VirtualBackground/VirtualBackground'));
|
35
42
|
|
43
|
+
const getParticipantChipContent = (peerCount = 0) => {
|
44
|
+
if (peerCount === 0) {
|
45
|
+
return 'You are the first to join';
|
46
|
+
}
|
47
|
+
const formatter = new Intl.NumberFormat('en', { notation: 'compact', maximumFractionDigits: 2 });
|
48
|
+
const formattedNum = formatter.format(peerCount);
|
49
|
+
return `${formattedNum} other${parseInt(formattedNum) === 1 ? '' : 's'} in the session`;
|
50
|
+
};
|
51
|
+
|
36
52
|
const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
|
37
53
|
const [previewPreference, setPreviewPreference] = useUserPreferences(
|
38
54
|
UserPreferencesKeys.PREVIEW,
|
39
55
|
defaultPreviewPreference,
|
40
56
|
);
|
57
|
+
const { isStreamingOn } = useRecordingStreaming();
|
41
58
|
const authToken = useAuthToken();
|
42
59
|
const [name, setName] = useState(initialName || previewPreference.name);
|
43
|
-
const { isLocalAudioEnabled, isLocalVideoEnabled } = useAVToggle();
|
60
|
+
const { isLocalAudioEnabled, isLocalVideoEnabled, toggleAudio, toggleVideo } = useAVToggle();
|
44
61
|
const [previewError, setPreviewError] = useState(false);
|
45
62
|
const { endPoints } = useHMSPrebuiltContext();
|
63
|
+
const { peerCount } = useParticipants();
|
46
64
|
const { enableJoin, preview, join } = usePreviewJoin({
|
47
65
|
name,
|
48
66
|
token: authToken,
|
@@ -60,6 +78,8 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
|
|
60
78
|
},
|
61
79
|
asRole,
|
62
80
|
});
|
81
|
+
const roomState = useHMSStore(selectRoomState);
|
82
|
+
|
63
83
|
const savePreferenceAndJoin = useCallback(() => {
|
64
84
|
setPreviewPreference({
|
65
85
|
name,
|
@@ -69,6 +89,10 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
|
|
69
89
|
join();
|
70
90
|
onJoin && onJoin();
|
71
91
|
}, [join, isLocalAudioEnabled, isLocalVideoEnabled, name, setPreviewPreference, onJoin]);
|
92
|
+
const roomLayout = useRoomLayout();
|
93
|
+
|
94
|
+
const { preview_header: previewHeader = {} } = roomLayout?.screens?.preview?.default?.elements || {};
|
95
|
+
|
72
96
|
useEffect(() => {
|
73
97
|
if (authToken) {
|
74
98
|
if (skipPreview) {
|
@@ -79,27 +103,62 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
|
|
79
103
|
}
|
80
104
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
81
105
|
}, [authToken, skipPreview]);
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
106
|
+
|
107
|
+
return roomState === HMSRoomState.Preview ? (
|
108
|
+
<Container css={{ h: '100%', pt: '$10', '@md': { justifyContent: 'space-between' } }}>
|
109
|
+
{toggleVideo ? null : <Box />}
|
110
|
+
<Flex direction="column" justify="center" css={{ w: '100%', maxWidth: '360px' }}>
|
111
|
+
<Logo />
|
112
|
+
<Text variant="h4" css={{ wordBreak: 'break-word', textAlign: 'center', mt: '$14', '@md': { mt: '$8' } }}>
|
113
|
+
{previewHeader.title}
|
114
|
+
</Text>
|
115
|
+
<Text css={{ c: '$on_surface_medium', my: '0', textAlign: 'center' }} variant="body1">
|
116
|
+
{previewHeader.sub_title}
|
117
|
+
</Text>
|
118
|
+
<Flex justify="center" css={{ my: '$8', gap: '$4' }}>
|
119
|
+
{isStreamingOn ? (
|
120
|
+
<Chip
|
121
|
+
content="LIVE"
|
122
|
+
backgroundColor="$alert_error_default"
|
123
|
+
textColor="#FFF"
|
124
|
+
icon={<Box css={{ h: '$sm', w: '$sm', backgroundColor: '$on_primary_high', borderRadius: '$round' }} />}
|
125
|
+
/>
|
126
|
+
) : null}
|
127
|
+
<Chip content={getParticipantChipContent(peerCount)} hideIfNoContent />
|
128
|
+
</Flex>
|
101
129
|
</Flex>
|
130
|
+
|
131
|
+
{toggleVideo ? (
|
132
|
+
<Flex
|
133
|
+
align="center"
|
134
|
+
justify="center"
|
135
|
+
css={{
|
136
|
+
'@sm': { width: '100%' },
|
137
|
+
flexDirection: 'column',
|
138
|
+
}}
|
139
|
+
>
|
140
|
+
<PreviewTile name={name} error={previewError} />
|
141
|
+
</Flex>
|
142
|
+
) : null}
|
143
|
+
|
144
|
+
<Box css={{ w: '100%', maxWidth: '360px' }}>
|
145
|
+
<PreviewControls
|
146
|
+
enableJoin={enableJoin}
|
147
|
+
savePreferenceAndJoin={savePreferenceAndJoin}
|
148
|
+
hideSettings={!toggleVideo && !toggleAudio}
|
149
|
+
/>
|
150
|
+
<PreviewForm
|
151
|
+
name={name}
|
152
|
+
onChange={setName}
|
153
|
+
enableJoin={enableJoin}
|
154
|
+
onJoin={savePreferenceAndJoin}
|
155
|
+
cannotPublishVideo={!toggleVideo}
|
156
|
+
cannotPublishAudio={!toggleAudio}
|
157
|
+
/>
|
158
|
+
</Box>
|
102
159
|
</Container>
|
160
|
+
) : (
|
161
|
+
<FullPageProgress />
|
103
162
|
);
|
104
163
|
};
|
105
164
|
|
@@ -113,10 +172,12 @@ const Container = styled('div', {
|
|
113
172
|
const PreviewTile = ({ name, error }) => {
|
114
173
|
const localPeer = useHMSStore(selectLocalPeer);
|
115
174
|
const borderAudioRef = useBorderAudioLevel(localPeer?.audioTrack);
|
175
|
+
const { isLocalAudioEnabled, toggleAudio } = useAVToggle();
|
116
176
|
const isVideoOn = useHMSStore(selectIsLocalVideoEnabled);
|
117
177
|
const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
|
118
178
|
const trackSelector = selectVideoTrackByID(localPeer?.videoTrack);
|
119
179
|
const track = useHMSStore(trackSelector);
|
180
|
+
const showMuteIcon = !isLocalAudioEnabled || !toggleAudio;
|
120
181
|
|
121
182
|
const {
|
122
183
|
aspectRatio: { width, height },
|
@@ -124,11 +185,10 @@ const PreviewTile = ({ name, error }) => {
|
|
124
185
|
return (
|
125
186
|
<StyledVideoTile.Container
|
126
187
|
css={{
|
127
|
-
bg: '$
|
188
|
+
bg: '$surface_default',
|
128
189
|
aspectRatio: width / height,
|
129
190
|
width: 'unset',
|
130
191
|
height: 'min(360px, 60vh)',
|
131
|
-
mt: '$12',
|
132
192
|
'@sm': {
|
133
193
|
height: 'unset',
|
134
194
|
width: 'min(360px, 100%)',
|
@@ -148,20 +208,23 @@ const PreviewTile = ({ name, error }) => {
|
|
148
208
|
{!isVideoOn ? (
|
149
209
|
<StyledVideoTile.AvatarContainer>
|
150
210
|
<Avatar name={name} data-testid="preview_avatar_tile" />
|
151
|
-
<Text css={{ ...textEllipsis('75%') }} variant="body2">
|
152
|
-
{name}
|
153
|
-
</Text>
|
154
211
|
</StyledVideoTile.AvatarContainer>
|
155
212
|
) : null}
|
156
213
|
</>
|
157
214
|
) : !error ? (
|
158
|
-
<
|
215
|
+
<FullPageProgress />
|
216
|
+
) : null}
|
217
|
+
{showMuteIcon ? (
|
218
|
+
<StyledVideoTile.AudioIndicator size="medium">
|
219
|
+
<MicOffIcon />
|
220
|
+
</StyledVideoTile.AudioIndicator>
|
159
221
|
) : null}
|
160
222
|
</StyledVideoTile.Container>
|
161
223
|
);
|
162
224
|
};
|
163
225
|
|
164
|
-
const PreviewControls = () => {
|
226
|
+
const PreviewControls = ({ hideSettings }) => {
|
227
|
+
const isVideoOn = useHMSStore(selectIsLocalVideoEnabled);
|
165
228
|
return (
|
166
229
|
<Flex
|
167
230
|
justify="between"
|
@@ -172,20 +235,20 @@ const PreviewControls = () => {
|
|
172
235
|
>
|
173
236
|
<Flex css={{ gap: '$4' }}>
|
174
237
|
<AudioVideoToggle compact />
|
175
|
-
<Suspense fallback="">
|
176
|
-
<VirtualBackground />
|
177
|
-
</Suspense>
|
238
|
+
<Suspense fallback="">{isVideoOn ? <VirtualBackground /> : null}</Suspense>
|
178
239
|
</Flex>
|
179
|
-
<PreviewSettings />
|
240
|
+
{!hideSettings ? <PreviewSettings /> : null}
|
180
241
|
</Flex>
|
181
242
|
);
|
182
243
|
};
|
183
244
|
|
184
|
-
|
245
|
+
// Bottom action sheet goes here, if isMobile
|
246
|
+
export const PreviewSettings = React.memo(() => {
|
185
247
|
const [open, setOpen] = useState(false);
|
248
|
+
|
186
249
|
return (
|
187
250
|
<Fragment>
|
188
|
-
<IconButton data-testid="preview_setting_btn" onClick={() => setOpen(value => !value)}>
|
251
|
+
<IconButton data-testid="preview_setting_btn" css={{ flexShrink: 0 }} onClick={() => setOpen(value => !value)}>
|
189
252
|
<SettingsIcon />
|
190
253
|
</IconButton>
|
191
254
|
{open && <SettingsModal open={open} onOpenChange={setOpen} />}
|
@@ -61,7 +61,7 @@ export const RoleChangeModal = ({ peerId, onOpenChange }) => {
|
|
61
61
|
css={{
|
62
62
|
mt: '$4',
|
63
63
|
mb: '$8',
|
64
|
-
c: '$
|
64
|
+
c: '$on_surface_medium',
|
65
65
|
display: 'flex',
|
66
66
|
flexWrap: 'wrap',
|
67
67
|
columnGap: '4px',
|
@@ -101,8 +101,8 @@ export const RoleChangeModal = ({ peerId, onOpenChange }) => {
|
|
101
101
|
data-testid="open_role_selection_dropdown"
|
102
102
|
asChild
|
103
103
|
css={{
|
104
|
-
border: '1px solid $
|
105
|
-
bg: '$
|
104
|
+
border: '1px solid $border_bright',
|
105
|
+
bg: '$surface_bright',
|
106
106
|
r: '$1',
|
107
107
|
p: '$6 $9',
|
108
108
|
}}
|
@@ -72,6 +72,7 @@ const Settings = ({ setHide }) => {
|
|
72
72
|
/>
|
73
73
|
</Fragment>
|
74
74
|
) : null}
|
75
|
+
|
75
76
|
{audioInput?.length ? (
|
76
77
|
<DeviceSelector
|
77
78
|
title={shouldShowAudioOutput ? 'Microphone' : 'Audio'}
|
@@ -86,6 +87,7 @@ const Settings = ({ setHide }) => {
|
|
86
87
|
}
|
87
88
|
/>
|
88
89
|
) : null}
|
90
|
+
|
89
91
|
{audioOutputFiltered?.length && shouldShowAudioOutput ? (
|
90
92
|
<DeviceSelector
|
91
93
|
title="Speaker"
|
@@ -128,8 +130,8 @@ const DeviceSelector = ({ title, devices, selection, onChange, icon, children =
|
|
128
130
|
css={{
|
129
131
|
position: 'relative',
|
130
132
|
flex: '1 1 0',
|
131
|
-
w: '100%',
|
132
133
|
minWidth: 0,
|
134
|
+
maxWidth: '100%',
|
133
135
|
'@md': {
|
134
136
|
mb: children ? '$8' : 0,
|
135
137
|
},
|
@@ -138,14 +140,6 @@ const DeviceSelector = ({ title, devices, selection, onChange, icon, children =
|
|
138
140
|
<Dropdown.Root open={open} onOpenChange={setOpen}>
|
139
141
|
<DialogDropdownTrigger
|
140
142
|
ref={ref}
|
141
|
-
css={{
|
142
|
-
...(children
|
143
|
-
? {
|
144
|
-
flex: '1 1 0',
|
145
|
-
minWidth: 0,
|
146
|
-
}
|
147
|
-
: {}),
|
148
|
-
}}
|
149
143
|
icon={icon}
|
150
144
|
title={devices.find(({ deviceId }) => deviceId === selection)?.label || 'Select device from list'}
|
151
145
|
open={open}
|
@@ -1,34 +1,10 @@
|
|
1
1
|
import React, { useCallback, useEffect, useState } from 'react';
|
2
2
|
import { useMedia } from 'react-use';
|
3
3
|
import { selectLocalPeerRoleName, useHMSStore } from '@100mslive/react-sdk';
|
4
|
-
import { ChevronLeftIcon, CrossIcon
|
4
|
+
import { ChevronLeftIcon, CrossIcon } from '@100mslive/react-icons';
|
5
5
|
import { Box, config as cssConfig, Dialog, Flex, IconButton, Tabs, Text } from '../../../';
|
6
|
-
import DeviceSettings from './DeviceSettings';
|
7
|
-
import { LayoutSettings } from './LayoutSettings';
|
8
|
-
import { NotificationSettings } from './NotificationSettings';
|
9
6
|
import { useHLSViewerRole } from '../AppData/useUISettings';
|
10
|
-
import { settingContent } from './common.js';
|
11
|
-
|
12
|
-
const settings = [
|
13
|
-
{
|
14
|
-
tabName: 'devices',
|
15
|
-
title: 'Device Settings',
|
16
|
-
icon: SettingsIcon,
|
17
|
-
content: DeviceSettings,
|
18
|
-
},
|
19
|
-
{
|
20
|
-
tabName: 'notifications',
|
21
|
-
title: 'Notifications',
|
22
|
-
icon: NotificationsIcon,
|
23
|
-
content: NotificationSettings,
|
24
|
-
},
|
25
|
-
{
|
26
|
-
tabName: 'layout',
|
27
|
-
title: 'Layout',
|
28
|
-
icon: GridFourIcon,
|
29
|
-
content: LayoutSettings,
|
30
|
-
},
|
31
|
-
];
|
7
|
+
import { settingContent, settingsList } from './common.js';
|
32
8
|
|
33
9
|
const SettingsModal = ({ open, onOpenChange, children }) => {
|
34
10
|
const mediaQueryLg = cssConfig.media.md;
|
@@ -39,7 +15,7 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
|
|
39
15
|
const isHlsViewer = hlsViewerRole === localPeerRole;
|
40
16
|
|
41
17
|
const [showSetting, setShowSetting] = useState(() =>
|
42
|
-
|
18
|
+
settingsList.reduce((obj, { tabName }) => ({ ...obj, [tabName]: true }), {}),
|
43
19
|
);
|
44
20
|
|
45
21
|
const hideSettingByTabName = useCallback(
|
@@ -90,7 +66,7 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
|
|
90
66
|
css={{
|
91
67
|
w: isMobile ? '100%' : '18.625rem',
|
92
68
|
flexDirection: 'column',
|
93
|
-
bg: '$
|
69
|
+
bg: '$background_default',
|
94
70
|
p: '$14 $10',
|
95
71
|
borderTopLeftRadius: '$4',
|
96
72
|
borderBottomLeftRadius: '$4',
|
@@ -98,7 +74,7 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
|
|
98
74
|
>
|
99
75
|
<Text variant="h5">Settings </Text>
|
100
76
|
<Flex direction="column" css={{ mx: isMobile ? '-$8' : 0, overflowY: 'auto', pt: '$10' }}>
|
101
|
-
{
|
77
|
+
{settingsList
|
102
78
|
.filter(({ tabName }) => showSetting[tabName])
|
103
79
|
.map(({ icon: Icon, tabName, title }) => {
|
104
80
|
return (
|
@@ -122,14 +98,14 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
|
|
122
98
|
position: 'absolute',
|
123
99
|
left: 0,
|
124
100
|
right: 0,
|
125
|
-
bg: '$
|
101
|
+
bg: '$surface_default',
|
126
102
|
width: '100%',
|
127
103
|
height: '100%',
|
128
104
|
}
|
129
105
|
: {}),
|
130
106
|
}}
|
131
107
|
>
|
132
|
-
{
|
108
|
+
{settingsList
|
133
109
|
.filter(({ tabName }) => showSetting[tabName])
|
134
110
|
.map(({ content: Content, title, tabName }) => {
|
135
111
|
return (
|
@@ -159,7 +135,7 @@ const SettingsContentHeader = ({ children, isMobile, onBack }) => {
|
|
159
135
|
return (
|
160
136
|
<Text variant="h6" css={{ mb: '$12', display: 'flex', alignItems: 'center' }}>
|
161
137
|
{isMobile && (
|
162
|
-
<Box as="span" css={{ bg: '$
|
138
|
+
<Box as="span" css={{ bg: '$surface_bright', mr: '$4', r: '$round', p: '$2' }} onClick={onBack}>
|
163
139
|
<ChevronLeftIcon />
|
164
140
|
</Box>
|
165
141
|
)}
|
@@ -1,11 +1,5 @@
|
|
1
1
|
import React, { useState } from 'react';
|
2
|
-
import {
|
3
|
-
selectAppData,
|
4
|
-
selectPermissions,
|
5
|
-
useHMSActions,
|
6
|
-
useHMSStore,
|
7
|
-
useRecordingStreaming,
|
8
|
-
} from '@100mslive/react-sdk';
|
2
|
+
import { selectPermissions, useHMSActions, useHMSStore, useRecordingStreaming } from '@100mslive/react-sdk';
|
9
3
|
import { AlertTriangleIcon } from '@100mslive/react-icons';
|
10
4
|
import { Button, Dialog, Flex, Text } from '../../../';
|
11
5
|
import { ResolutionInput } from '../Streaming/ResolutionInput';
|
@@ -16,7 +10,6 @@ import { APP_DATA, RTMP_RECORD_DEFAULT_RESOLUTION } from '../../common/constants
|
|
16
10
|
|
17
11
|
const StartRecording = ({ open, onOpenChange }) => {
|
18
12
|
const permissions = useHMSStore(selectPermissions);
|
19
|
-
const recordingUrl = useHMSStore(selectAppData(APP_DATA.recordingUrl));
|
20
13
|
const [resolution, setResolution] = useState(RTMP_RECORD_DEFAULT_RESOLUTION);
|
21
14
|
|
22
15
|
const [recordingStarted, setRecordingState] = useSetAppDataByKey(APP_DATA.recordingStarted);
|
@@ -37,19 +30,19 @@ const StartRecording = ({ open, onOpenChange }) => {
|
|
37
30
|
}}
|
38
31
|
>
|
39
32
|
<Dialog.Title>
|
40
|
-
<Flex gap={2} css={{ c: '$
|
33
|
+
<Flex gap={2} css={{ c: '$alert_error_default' }}>
|
41
34
|
<AlertTriangleIcon />
|
42
35
|
<Text css={{ c: 'inherit' }} variant="h6">
|
43
36
|
End Recording
|
44
37
|
</Text>
|
45
38
|
</Flex>
|
46
39
|
</Dialog.Title>
|
47
|
-
<Text variant="sm" css={{ c: '$
|
40
|
+
<Text variant="sm" css={{ c: '$on_surface_medium', my: '$8' }}>
|
48
41
|
Are you sure you want to end recording? You can’t undo this action.
|
49
42
|
</Text>
|
50
43
|
<Flex justify="end" css={{ mt: '$12' }}>
|
51
44
|
<Dialog.Close asChild>
|
52
|
-
<Button outlined css={{ borderColor: '$
|
45
|
+
<Button outlined css={{ borderColor: '$secondary_bright', mr: '$4' }}>
|
53
46
|
Don't end
|
54
47
|
</Button>
|
55
48
|
</Dialog.Close>
|
@@ -99,7 +92,6 @@ const StartRecording = ({ open, onOpenChange }) => {
|
|
99
92
|
try {
|
100
93
|
setRecordingState(true);
|
101
94
|
await hmsActions.startRTMPOrRecording({
|
102
|
-
meetingURL: recordingUrl,
|
103
95
|
resolution: getResolution(resolution),
|
104
96
|
record: true,
|
105
97
|
});
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
2
2
|
import { Label } from '../../../Label';
|
3
3
|
import { Flex } from '../../../Layout';
|
4
4
|
import { Switch } from '../../../Switch';
|
5
|
-
// import { Flex, Label, Switch } from '../../../';
|
6
5
|
|
7
6
|
const SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) => {
|
8
7
|
return (
|
@@ -12,7 +11,7 @@ const SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =
|
|
12
11
|
my: '$2',
|
13
12
|
py: '$8',
|
14
13
|
w: '100%',
|
15
|
-
borderBottom: '1px solid $
|
14
|
+
borderBottom: '1px solid $border_default',
|
16
15
|
display: hide ? 'none' : 'flex',
|
17
16
|
}}
|
18
17
|
>
|
@@ -21,7 +20,7 @@ const SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =
|
|
21
20
|
css={{
|
22
21
|
fontSize: '$md',
|
23
22
|
fontWeight: '$semiBold',
|
24
|
-
color: checked ? '$
|
23
|
+
color: checked ? '$on_surface_high' : '$on_surface_low',
|
25
24
|
cursor: 'pointer',
|
26
25
|
display: 'flex',
|
27
26
|
alignItems: 'center',
|
@@ -1,4 +1,9 @@
|
|
1
|
+
import { GridFourIcon, NotificationsIcon, SettingsIcon } from '@100mslive/react-icons';
|
1
2
|
import { css } from '../../..';
|
3
|
+
import DeviceSettings from '../Settings/DeviceSettings';
|
4
|
+
import { LayoutSettings } from '../Settings/LayoutSettings';
|
5
|
+
import { NotificationSettings } from '../Settings/NotificationSettings';
|
6
|
+
|
2
7
|
export const settingOverflow = css({
|
3
8
|
flex: '1 1 0',
|
4
9
|
pr: '$12',
|
@@ -13,3 +18,24 @@ export const settingContent = css({
|
|
13
18
|
display: 'none',
|
14
19
|
},
|
15
20
|
});
|
21
|
+
|
22
|
+
export const settingsList = [
|
23
|
+
{
|
24
|
+
tabName: 'devices',
|
25
|
+
title: 'Device Settings',
|
26
|
+
icon: SettingsIcon,
|
27
|
+
content: DeviceSettings,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
tabName: 'notifications',
|
31
|
+
title: 'Notifications',
|
32
|
+
icon: NotificationsIcon,
|
33
|
+
content: NotificationSettings,
|
34
|
+
},
|
35
|
+
{
|
36
|
+
tabName: 'layout',
|
37
|
+
title: 'Layout',
|
38
|
+
icon: GridFourIcon,
|
39
|
+
content: LayoutSettings,
|
40
|
+
},
|
41
|
+
];
|
@@ -98,7 +98,7 @@ export const StatsForNerds = ({ onOpenChange }) => {
|
|
98
98
|
css={{
|
99
99
|
px: '$9',
|
100
100
|
bg: isSelected ? selectionBg : undefined,
|
101
|
-
c: isSelected ? '$
|
101
|
+
c: isSelected ? '$on_primary_high' : '$on_primary_high',
|
102
102
|
}}
|
103
103
|
>
|
104
104
|
{option.label}
|
@@ -219,18 +219,18 @@ const TrackStats = ({ trackID, layer, local }) => {
|
|
219
219
|
};
|
220
220
|
|
221
221
|
const StatsRow = React.memo(({ label, value }) => (
|
222
|
-
<Box css={{ bg: '$
|
222
|
+
<Box css={{ bg: '$surface_bright', w: 'calc(50% - $6)', p: '$8', r: '$3' }}>
|
223
223
|
<Text
|
224
224
|
variant="overline"
|
225
225
|
css={{
|
226
226
|
fontWeight: '$semiBold',
|
227
|
-
color: '$
|
227
|
+
color: '$on_surface_medium',
|
228
228
|
textTransform: 'uppercase',
|
229
229
|
}}
|
230
230
|
>
|
231
|
-
{label}
|
231
|
+
{label}
|
232
232
|
</Text>
|
233
|
-
<Text variant="sub1" css={{ fontWeight: '$semiBold', color: '$
|
233
|
+
<Text variant="sub1" css={{ fontWeight: '$semiBold', color: '$on_surface_high' }}>
|
234
234
|
{value || '-'}
|
235
235
|
</Text>
|
236
236
|
</Box>
|
@@ -3,7 +3,7 @@ import { selectPermissions, useHMSStore } from '@100mslive/react-sdk';
|
|
3
3
|
import { ChevronLeftIcon, ChevronRightIcon, CrossIcon, RecordIcon } from '@100mslive/react-icons';
|
4
4
|
import { Box, Flex, IconButton, slideLeftAndFade, Switch, Text } from '../../../';
|
5
5
|
|
6
|
-
export const StreamCard = ({ title, subtitle, Icon, css = {}, onClick, testId }) => {
|
6
|
+
export const StreamCard = ({ title, subtitle, Icon, imgSrc = '', css = {}, onClick, testId }) => {
|
7
7
|
return (
|
8
8
|
<Flex
|
9
9
|
css={{
|
@@ -11,7 +11,7 @@ export const StreamCard = ({ title, subtitle, Icon, css = {}, onClick, testId })
|
|
11
11
|
p: '$10',
|
12
12
|
r: '$1',
|
13
13
|
cursor: 'pointer',
|
14
|
-
bg: '$
|
14
|
+
bg: '$surface_bright',
|
15
15
|
mb: '$10',
|
16
16
|
mt: '$8',
|
17
17
|
...css,
|
@@ -20,13 +20,13 @@ export const StreamCard = ({ title, subtitle, Icon, css = {}, onClick, testId })
|
|
20
20
|
onClick={onClick}
|
21
21
|
>
|
22
22
|
<Text css={{ alignSelf: 'center', p: '$4' }}>
|
23
|
-
<Icon width={40} height={40} />
|
23
|
+
{imgSrc ? <img src={imgSrc} height={40} width={40} /> : <Icon width={40} height={40} />}
|
24
24
|
</Text>
|
25
25
|
<Box css={{ flex: '1 1 0', mx: '$8' }}>
|
26
26
|
<Text variant="h6" css={{ mb: '$4' }}>
|
27
27
|
{title}
|
28
28
|
</Text>
|
29
|
-
<Text variant="sm" css={{ color: '$
|
29
|
+
<Text variant="sm" css={{ color: '$on_surface_medium' }}>
|
30
30
|
{subtitle}
|
31
31
|
</Text>
|
32
32
|
</Box>
|
@@ -41,7 +41,7 @@ export const ContentHeader = ({ onBack, title, content }) => {
|
|
41
41
|
return (
|
42
42
|
<Flex css={{ w: '100%', py: '$8', px: '$10', cursor: 'pointer' }}>
|
43
43
|
<Text
|
44
|
-
css={{ p: '$2', bg: '$
|
44
|
+
css={{ p: '$2', bg: '$surface_bright', r: '$round', alignSelf: 'center' }}
|
45
45
|
onClick={onBack}
|
46
46
|
data-testid="go_back"
|
47
47
|
>
|
@@ -53,7 +53,7 @@ export const ContentHeader = ({ onBack, title, content }) => {
|
|
53
53
|
css={{
|
54
54
|
textTransform: 'uppercase',
|
55
55
|
fontWeight: '$semiBold',
|
56
|
-
color: '$
|
56
|
+
color: '$on_surface_medium',
|
57
57
|
}}
|
58
58
|
>
|
59
59
|
{title}
|
@@ -76,7 +76,7 @@ export const Container = ({ children, rounded = false }) => {
|
|
76
76
|
position: 'absolute',
|
77
77
|
top: 0,
|
78
78
|
left: 0,
|
79
|
-
bg: '$
|
79
|
+
bg: '$surface_default',
|
80
80
|
transform: 'translateX(10%)',
|
81
81
|
animation: `${slideLeftAndFade('10%')} 100ms ease-out forwards`,
|
82
82
|
display: 'flex',
|
@@ -98,7 +98,7 @@ export const ContentBody = ({ Icon, title, removeVerticalPadding = false, childr
|
|
98
98
|
{title}
|
99
99
|
</Text>
|
100
100
|
</Text>
|
101
|
-
<Text variant="sm" css={{ color: '$
|
101
|
+
<Text variant="sm" css={{ color: '$on_surface_medium' }}>
|
102
102
|
{children}
|
103
103
|
</Text>
|
104
104
|
</Box>
|
@@ -108,8 +108,8 @@ export const ContentBody = ({ Icon, title, removeVerticalPadding = false, childr
|
|
108
108
|
export const RecordStream = ({ record, setRecord, testId }) => {
|
109
109
|
const permissions = useHMSStore(selectPermissions);
|
110
110
|
return permissions?.browserRecording ? (
|
111
|
-
<Flex align="center" css={{ bg: '$
|
112
|
-
<Text css={{ color: '$
|
111
|
+
<Flex align="center" css={{ bg: '$surface_bright', m: '$8 $10', p: '$8', r: '$0' }}>
|
112
|
+
<Text css={{ color: '$alert_error_default' }}>
|
113
113
|
<RecordIcon />
|
114
114
|
</Text>
|
115
115
|
<Text variant="sm" css={{ flex: '1 1 0', mx: '$8' }}>
|
@@ -125,7 +125,7 @@ export const ErrorText = ({ error }) => {
|
|
125
125
|
return null;
|
126
126
|
}
|
127
127
|
return (
|
128
|
-
<Text variant="sm" css={{ mb: '$8', color: '$
|
128
|
+
<Text variant="sm" css={{ mb: '$8', color: '$alert_error_default' }}>
|
129
129
|
{error}
|
130
130
|
</Text>
|
131
131
|
);
|