@100mslive/roomkit-react 0.1.0 → 0.1.2-alpha.0
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/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
|
);
|