@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,50 +1,103 @@
|
|
1
1
|
import React, { Fragment } from 'react';
|
2
2
|
import {
|
3
|
-
|
3
|
+
DeviceType,
|
4
4
|
selectLocalVideoTrackID,
|
5
5
|
selectVideoTrackByID,
|
6
6
|
useAVToggle,
|
7
|
+
useDevices,
|
7
8
|
useHMSActions,
|
8
9
|
useHMSStore,
|
9
10
|
} from '@100mslive/react-sdk';
|
10
11
|
import { CameraFlipIcon, MicOffIcon, MicOnIcon, VideoOffIcon, VideoOnIcon } from '@100mslive/react-icons';
|
12
|
+
import { IconButtonWithOptions } from './IconButtonWithOptions/IconButtonWithOptions';
|
11
13
|
import { ToastManager } from './Toast/ToastManager';
|
14
|
+
import { Text } from '../../Text';
|
12
15
|
import { Tooltip } from '../../Tooltip';
|
13
16
|
import IconButton from '../IconButton';
|
14
17
|
import { isMacOS } from '../common/constants';
|
15
18
|
|
19
|
+
const optionsCSS = { fontWeight: '$semiBold', color: '$on_surface_high', w: '100%', p: '$8' };
|
20
|
+
|
16
21
|
export const AudioVideoToggle = () => {
|
22
|
+
const { allDevices, selectedDeviceIDs, updateDevice } = useDevices();
|
23
|
+
const { videoInput, audioInput } = allDevices;
|
24
|
+
|
25
|
+
const formattedVideoInputList = videoInput?.map(videoInput => ({
|
26
|
+
active: selectedDeviceIDs.videoInput === videoInput.deviceId,
|
27
|
+
content: (
|
28
|
+
<Text
|
29
|
+
variant="sm"
|
30
|
+
onClick={() =>
|
31
|
+
updateDevice({
|
32
|
+
deviceType: DeviceType.videoInput,
|
33
|
+
deviceId: videoInput.deviceId,
|
34
|
+
})
|
35
|
+
}
|
36
|
+
css={optionsCSS}
|
37
|
+
>
|
38
|
+
{videoInput.label}
|
39
|
+
</Text>
|
40
|
+
),
|
41
|
+
title: videoInput.label,
|
42
|
+
}));
|
43
|
+
|
44
|
+
const formattedAudioInputList = audioInput?.map(audioInput => ({
|
45
|
+
active: selectedDeviceIDs.audioInput === audioInput.deviceId,
|
46
|
+
content: (
|
47
|
+
<Text
|
48
|
+
variant="sm"
|
49
|
+
onClick={() =>
|
50
|
+
updateDevice({
|
51
|
+
deviceType: DeviceType.audioInput,
|
52
|
+
deviceId: audioInput.deviceId,
|
53
|
+
})
|
54
|
+
}
|
55
|
+
css={optionsCSS}
|
56
|
+
>
|
57
|
+
{audioInput.label}
|
58
|
+
</Text>
|
59
|
+
),
|
60
|
+
title: audioInput.label,
|
61
|
+
}));
|
62
|
+
|
17
63
|
const { isLocalVideoEnabled, isLocalAudioEnabled, toggleAudio, toggleVideo } = useAVToggle();
|
18
64
|
const actions = useHMSActions();
|
19
|
-
const
|
20
|
-
const localVideoTrack = useHMSStore(selectVideoTrackByID(
|
21
|
-
const isConnectedToRoom = useHMSStore(selectIsConnectedToRoom);
|
65
|
+
const videoTrackId = useHMSStore(selectLocalVideoTrackID);
|
66
|
+
const localVideoTrack = useHMSStore(selectVideoTrackByID(videoTrackId));
|
22
67
|
|
23
68
|
return (
|
24
69
|
<Fragment>
|
25
70
|
{toggleAudio ? (
|
26
|
-
<
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
71
|
+
<IconButtonWithOptions
|
72
|
+
options={formattedAudioInputList}
|
73
|
+
tooltipMessage={`Turn ${isLocalAudioEnabled ? 'off' : 'on'} audio (${isMacOS ? '⌘' : 'ctrl'} + d)`}
|
74
|
+
icon={
|
75
|
+
!isLocalAudioEnabled ? <MicOffIcon data-testid="audio_off_btn" /> : <MicOnIcon data-testid="audio_on_btn" />
|
76
|
+
}
|
77
|
+
active={isLocalAudioEnabled}
|
78
|
+
onClick={toggleAudio}
|
79
|
+
key="toggleAudio"
|
80
|
+
/>
|
35
81
|
) : null}
|
82
|
+
|
36
83
|
{toggleVideo ? (
|
37
|
-
<
|
38
|
-
|
39
|
-
|
84
|
+
<IconButtonWithOptions
|
85
|
+
options={formattedVideoInputList}
|
86
|
+
tooltipMessage={`Turn ${isLocalVideoEnabled ? 'off' : 'on'} video (${isMacOS ? '⌘' : 'ctrl'} + e)`}
|
87
|
+
icon={
|
88
|
+
!isLocalVideoEnabled ? (
|
40
89
|
<VideoOffIcon data-testid="video_off_btn" />
|
41
90
|
) : (
|
42
91
|
<VideoOnIcon data-testid="video_on_btn" />
|
43
|
-
)
|
44
|
-
|
45
|
-
|
92
|
+
)
|
93
|
+
}
|
94
|
+
key="toggleVideo"
|
95
|
+
active={isLocalVideoEnabled}
|
96
|
+
onClick={toggleVideo}
|
97
|
+
/>
|
46
98
|
) : null}
|
47
|
-
|
99
|
+
|
100
|
+
{localVideoTrack?.facingMode ? (
|
48
101
|
<Tooltip title="Switch Camera" key="switchCamera">
|
49
102
|
<IconButton
|
50
103
|
onClick={async () => {
|
@@ -13,7 +13,7 @@ const BottomActionSheet = ({
|
|
13
13
|
sideOffset = -50,
|
14
14
|
defaultHeight = 50,
|
15
15
|
}) => {
|
16
|
-
const MINIMUM_HEIGHT =
|
16
|
+
const MINIMUM_HEIGHT = 40; // vh
|
17
17
|
const [sheetOpen, setSheetOpen] = useState(false);
|
18
18
|
const [sheetHeight, setSheetHeight] = useState(`${Math.min(Math.max(MINIMUM_HEIGHT, defaultHeight), 100)}vh`);
|
19
19
|
const closeRef = useRef(null);
|
@@ -27,14 +27,18 @@ const PinnedMessage = ({ clearPinnedMessage }) => {
|
|
27
27
|
const pinnedMessage = useHMSStore(selectSessionStore(SESSION_STORE_KEY.PINNED_MESSAGE));
|
28
28
|
|
29
29
|
return pinnedMessage ? (
|
30
|
-
<Flex
|
30
|
+
<Flex
|
31
|
+
css={{ p: '$8', color: '$on_surface_medium', bg: '$surface_bright', r: '$1' }}
|
32
|
+
align="center"
|
33
|
+
justify="between"
|
34
|
+
>
|
31
35
|
<Box>
|
32
36
|
<PinIcon />
|
33
37
|
</Box>
|
34
38
|
<Box
|
35
39
|
css={{
|
36
40
|
ml: '$8',
|
37
|
-
color: '$
|
41
|
+
color: '$on_surface_medium',
|
38
42
|
w: '100%',
|
39
43
|
maxHeight: '$18',
|
40
44
|
overflowY: 'auto',
|
@@ -46,16 +46,16 @@ const MessageTypeContainer = ({ left, right }) => {
|
|
46
46
|
ml: 'auto',
|
47
47
|
mr: '$4',
|
48
48
|
p: '$2 $4',
|
49
|
-
border: '1px solid $
|
49
|
+
border: '1px solid $on_surface_low',
|
50
50
|
r: '$0',
|
51
51
|
}}
|
52
52
|
>
|
53
53
|
{left && (
|
54
|
-
<SenderName variant="tiny" as="span" css={{ color: '$
|
54
|
+
<SenderName variant="tiny" as="span" css={{ color: '$on_surface_medium' }}>
|
55
55
|
{left}
|
56
56
|
</SenderName>
|
57
57
|
)}
|
58
|
-
{left && right && <Box css={{ borderLeft: '1px solid $
|
58
|
+
{left && right && <Box css={{ borderLeft: '1px solid $on_surface_low', mx: '$4', h: '$8' }} />}
|
59
59
|
{right && (
|
60
60
|
<SenderName as="span" variant="tiny">
|
61
61
|
{right}
|
@@ -87,7 +87,7 @@ const URL_REGEX =
|
|
87
87
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;
|
88
88
|
|
89
89
|
const Link = styled('a', {
|
90
|
-
color: '$
|
90
|
+
color: '$primary_default',
|
91
91
|
wordBreak: 'break-word',
|
92
92
|
'&:hover': {
|
93
93
|
textDecoration: 'underline',
|
@@ -132,14 +132,16 @@ const ChatActions = ({ onPin }) => {
|
|
132
132
|
<Dropdown.Trigger asChild>
|
133
133
|
<IconButton>
|
134
134
|
<Tooltip title="More options">
|
135
|
-
<
|
136
|
-
<HorizontalMenuIcon />
|
137
|
-
</Box>
|
135
|
+
<HorizontalMenuIcon />
|
138
136
|
</Tooltip>
|
139
137
|
</IconButton>
|
140
138
|
</Dropdown.Trigger>
|
141
139
|
<Dropdown.Portal>
|
142
|
-
<Dropdown.Content
|
140
|
+
<Dropdown.Content
|
141
|
+
sideOffset={5}
|
142
|
+
align="end"
|
143
|
+
css={{ width: '$48', backgroundColor: '$surface_bright', py: '$0' }}
|
144
|
+
>
|
143
145
|
<Dropdown.Item data-testid="pin_message_btn" onClick={onPin}>
|
144
146
|
<PinIcon />
|
145
147
|
<Text variant="sm" css={{ ml: '$4' }}>
|
@@ -192,7 +194,7 @@ const ChatMessage = React.memo(({ index, style = {}, message, setRowHeight, onPi
|
|
192
194
|
align="center"
|
193
195
|
css={{
|
194
196
|
flexWrap: 'wrap',
|
195
|
-
bg: messageType ? '$
|
197
|
+
bg: messageType ? '$surface_bright' : undefined,
|
196
198
|
r: messageType ? '$1' : undefined,
|
197
199
|
px: messageType ? '$4' : '$2',
|
198
200
|
py: messageType ? '$4' : 0,
|
@@ -203,7 +205,7 @@ const ChatMessage = React.memo(({ index, style = {}, message, setRowHeight, onPi
|
|
203
205
|
>
|
204
206
|
<Text
|
205
207
|
css={{
|
206
|
-
color: '$
|
208
|
+
color: '$on_surface_high',
|
207
209
|
fontWeight: '$semiBold',
|
208
210
|
display: 'inline-flex',
|
209
211
|
alignItems: 'center',
|
@@ -225,7 +227,7 @@ const ChatMessage = React.memo(({ index, style = {}, message, setRowHeight, onPi
|
|
225
227
|
variant="sm"
|
226
228
|
css={{
|
227
229
|
ml: '$4',
|
228
|
-
color: '$
|
230
|
+
color: '$on_primary_medium',
|
229
231
|
flexShrink: 0,
|
230
232
|
}}
|
231
233
|
>
|
@@ -11,7 +11,7 @@ import { useEmojiPickerStyles } from './useEmojiPickerStyles';
|
|
11
11
|
const TextArea = styled('textarea', {
|
12
12
|
width: '100%',
|
13
13
|
bg: 'transparent',
|
14
|
-
color: '$
|
14
|
+
color: '$on_primary_high',
|
15
15
|
resize: 'none',
|
16
16
|
lineHeight: '1rem',
|
17
17
|
position: 'relative',
|
@@ -105,7 +105,7 @@ export const ChatFooter = ({ role, peerId, onSend, children }) => {
|
|
105
105
|
<Flex
|
106
106
|
align="center"
|
107
107
|
css={{
|
108
|
-
bg: '$
|
108
|
+
bg: '$surface_bright',
|
109
109
|
minHeight: '$16',
|
110
110
|
maxHeight: '$24',
|
111
111
|
position: 'relative',
|
@@ -13,7 +13,7 @@ export const ChatHeader = React.memo(({ selection, selectorOpen, onToggle, onSel
|
|
13
13
|
onClick={onToggle}
|
14
14
|
align="center"
|
15
15
|
css={{
|
16
|
-
color: '$
|
16
|
+
color: '$on_primary_high',
|
17
17
|
h: '$16',
|
18
18
|
mb: '$2',
|
19
19
|
}}
|
@@ -24,7 +24,7 @@ export const ChatHeader = React.memo(({ selection, selectorOpen, onToggle, onSel
|
|
24
24
|
asChild
|
25
25
|
data-testid="participant_list_filter"
|
26
26
|
css={{
|
27
|
-
border: '1px solid $
|
27
|
+
border: '1px solid $on_surface_low',
|
28
28
|
r: '$0',
|
29
29
|
p: '$2 $4',
|
30
30
|
ml: '$8',
|
@@ -35,7 +35,7 @@ export const ChatHeader = React.memo(({ selection, selectorOpen, onToggle, onSel
|
|
35
35
|
<Text variant="sm" css={{ ...textEllipsis(80) }}>
|
36
36
|
{selection}
|
37
37
|
</Text>
|
38
|
-
<Box css={{ ml: '$2', color: '$
|
38
|
+
<Box css={{ ml: '$2', color: '$on_surface_low' }}>
|
39
39
|
{open ? <ChevronUpIcon width={14} height={14} /> : <ChevronDownIcon width={14} height={14} />}
|
40
40
|
</Box>
|
41
41
|
</Flex>
|
@@ -14,14 +14,14 @@ import { ParticipantSearch } from '../Header/ParticipantList';
|
|
14
14
|
import { useFilteredRoles } from '../../common/hooks';
|
15
15
|
|
16
16
|
const ChatDotIcon = () => {
|
17
|
-
return <Box css={{ size: '$6', bg: '$
|
17
|
+
return <Box css={{ size: '$6', bg: '$primary_default', mx: '$2', r: '$round' }} />;
|
18
18
|
};
|
19
19
|
|
20
20
|
const SelectorItem = ({ value, active, onClick, unreadCount }) => {
|
21
21
|
return (
|
22
22
|
<Dropdown.Item data-testid="chat_members" css={{ align: 'center', px: '$10' }} onClick={onClick}>
|
23
23
|
<Text variant="sm">{value}</Text>
|
24
|
-
<Flex align="center" css={{ ml: 'auto', color: '$
|
24
|
+
<Flex align="center" css={{ ml: 'auto', color: '$on_primary_high' }}>
|
25
25
|
{unreadCount > 0 && (
|
26
26
|
<Tooltip title={`${unreadCount} unread`}>
|
27
27
|
<Box css={{ mr: active ? '$3' : 0 }}>
|
@@ -9,16 +9,16 @@ export const useEmojiPickerStyles = showing => {
|
|
9
9
|
const style = document.createElement('style');
|
10
10
|
style.textContent = `
|
11
11
|
#root {
|
12
|
-
--em-rgb-color: var(--hms-ui-colors-
|
13
|
-
--em-rgb-input: var(--hms-ui-colors-
|
14
|
-
--em-color-border: var(--hms-ui-colors-
|
15
|
-
--color-b: var(--hms-ui-colors-
|
12
|
+
--em-rgb-color: var(--hms-ui-colors-on_primary_high);
|
13
|
+
--em-rgb-input: var(--hms-ui-colors-on_primary_high);
|
14
|
+
--em-color-border: var(--hms-ui-colors-surface_default);
|
15
|
+
--color-b: var(--hms-ui-colors-on_primary_high);
|
16
16
|
--rgb-background: transparent;
|
17
|
-
color: var(--hms-ui-colors-
|
17
|
+
color: var(--hms-ui-colors-on_primary_high);
|
18
18
|
font-family: var(--hms-ui-fonts-sans);
|
19
19
|
}
|
20
20
|
.sticky {
|
21
|
-
background-color: var(--hms-ui-colors-
|
21
|
+
background-color: var(--hms-ui-colors-surface_bright);
|
22
22
|
}
|
23
23
|
`;
|
24
24
|
root?.appendChild(style);
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { Flex } from '../../Layout';
|
2
|
+
import { Text } from '../../Text';
|
3
|
+
|
4
|
+
const Chip = ({
|
5
|
+
icon = <></>,
|
6
|
+
content = '',
|
7
|
+
backgroundColor = '$surface_default',
|
8
|
+
textColor = '$on_surface_high',
|
9
|
+
hideIfNoContent = false,
|
10
|
+
}) => {
|
11
|
+
if (hideIfNoContent && !content) {
|
12
|
+
return;
|
13
|
+
}
|
14
|
+
return (
|
15
|
+
<Flex align="center" css={{ backgroundColor, p: '$4 $6', borderRadius: '$4' }}>
|
16
|
+
{icon}
|
17
|
+
<Text variant="sm" css={{ fontWeight: '$semiBold', color: textColor, ml: '$2' }}>
|
18
|
+
{content}
|
19
|
+
</Text>
|
20
|
+
</Flex>
|
21
|
+
);
|
22
|
+
};
|
23
|
+
|
24
|
+
export default Chip;
|
@@ -10,7 +10,7 @@ const Wrapper = styled('span', {
|
|
10
10
|
display: 'flex',
|
11
11
|
alignItems: 'center',
|
12
12
|
justifyContent: 'center',
|
13
|
-
backgroundColor: '$
|
13
|
+
backgroundColor: '$background_dim',
|
14
14
|
borderRadius: '$round',
|
15
15
|
variants: {
|
16
16
|
isTile: {
|
@@ -25,7 +25,7 @@ const Wrapper = styled('span', {
|
|
25
25
|
export const ConnectionIndicator = ({ peerId, isTile = false }) => {
|
26
26
|
const downlinkQuality = useHMSStore(selectConnectionQualityByPeerID(peerId))?.downlinkQuality;
|
27
27
|
const { theme } = useTheme();
|
28
|
-
const defaultColor = theme.colors.
|
28
|
+
const defaultColor = theme.colors.surface_brighter;
|
29
29
|
if (downlinkQuality === -1 || downlinkQuality === undefined) {
|
30
30
|
return null;
|
31
31
|
}
|
@@ -57,21 +57,21 @@ export const ConnectionIndicator = ({ peerId, isTile = false }) => {
|
|
57
57
|
>
|
58
58
|
<path
|
59
59
|
d="M6.875 0c2.549.035 4.679.902 6.445 2.648.366.362.45.796.216 1.096-.239.306-.714.34-1.142.072a2.28 2.28 0 0 1-.341-.271C9.24.862 4.924.775 1.992 3.346c-.284.249-.594.419-.983.393-.272-.019-.49-.135-.613-.388-.125-.261-.05-.498.114-.713.073-.092.156-.177.245-.254C2.516.804 4.591.039 6.875 0Z"
|
60
|
-
fill={getColor(4, downlinkQuality, defaultColor)}
|
60
|
+
fill={getColor(4, downlinkQuality, defaultColor, theme)}
|
61
61
|
transform="translate(-.333)"
|
62
62
|
/>
|
63
63
|
<path
|
64
64
|
d="M7.056 2.964c1.756.035 3.208.7 4.499 1.763.162.134.277.315.354.512.098.251.114.503-.075.72-.193.222-.452.259-.725.198-.293-.066-.518-.247-.738-.443a4.859 4.859 0 0 0-6.198-.26c-.166.127-.318.271-.475.409-.242.211-.513.343-.843.317-.43-.034-.679-.397-.561-.81.062-.211.181-.4.345-.546 1.265-1.162 2.733-1.836 4.417-1.86Z"
|
65
|
-
fill={getColor(3, downlinkQuality, defaultColor)}
|
65
|
+
fill={getColor(3, downlinkQuality, defaultColor, theme)}
|
66
66
|
transform="translate(-.333)"
|
67
67
|
/>
|
68
68
|
<path
|
69
69
|
d="M7.384,6.052C8.293,6.068 9.157,6.449 9.783,7.108C10.005,7.339 10.157,7.6 10.07,7.942C9.959,8.377 9.435,8.581 9.071,8.243C7.935,7.191 6.356,7.183 5.152,8.183C4.816,8.462 4.6,8.485 4.332,8.27C4.063,8.055 3.998,7.691 4.177,7.358C4.273,7.179 4.414,7.038 4.57,6.911C5.26,6.349 6.149,6.05 7.384,6.052L7.384,6.052Z"
|
70
|
-
fill={getColor(2, downlinkQuality, defaultColor)}
|
70
|
+
fill={getColor(2, downlinkQuality, defaultColor, theme)}
|
71
71
|
/>
|
72
72
|
<path
|
73
73
|
d="M8.214,9.941C8.214,10.234 8.097,10.515 7.888,10.721C7.68,10.928 7.398,11.042 7.104,11.039C6.471,11.036 5.982,10.541 5.993,9.912C6.004,9.259 6.499,8.766 7.133,8.779C7.744,8.791 8.22,9.301 8.214,9.941Z"
|
74
|
-
fill={getColor(1, downlinkQuality, defaultColor)}
|
74
|
+
fill={getColor(1, downlinkQuality, defaultColor, theme)}
|
75
75
|
/>
|
76
76
|
</svg>
|
77
77
|
</Wrapper>
|
@@ -8,7 +8,7 @@ const TileConnection = ({ name, peerId, hideLabel, width }) => {
|
|
8
8
|
{!hideLabel ? (
|
9
9
|
<Text
|
10
10
|
css={{
|
11
|
-
c: '$
|
11
|
+
c: '$on_surface_high',
|
12
12
|
...textEllipsis(width - 60),
|
13
13
|
}}
|
14
14
|
variant="xs"
|
@@ -28,7 +28,7 @@ const Wrapper = styled('div', {
|
|
28
28
|
position: 'absolute',
|
29
29
|
bottom: '$2',
|
30
30
|
left: '$2',
|
31
|
-
backgroundColor: '$
|
31
|
+
backgroundColor: '$background_dim',
|
32
32
|
borderRadius: '$1',
|
33
33
|
maxWidth: '85%',
|
34
34
|
zIndex: 1,
|
@@ -23,17 +23,17 @@ export const getTooltipText = connectionScore => {
|
|
23
23
|
* @param connectionScore -> 0 to 5, 0 means disconnected
|
24
24
|
* @param defaultColor -> color for components not taking the connection color
|
25
25
|
*/
|
26
|
-
export const getColor = (position, connectionScore, defaultColor) => {
|
26
|
+
export const getColor = (position, connectionScore, defaultColor, theme) => {
|
27
27
|
const shouldBeColored = position <= connectionScore;
|
28
28
|
if (!shouldBeColored) {
|
29
29
|
return defaultColor;
|
30
30
|
}
|
31
31
|
if (connectionScore >= 4) {
|
32
|
-
return
|
32
|
+
return theme.colors.alert_success;
|
33
33
|
} else if (connectionScore >= 3) {
|
34
|
-
return
|
34
|
+
return theme.colors.alert_warning;
|
35
35
|
} else if (connectionScore >= 1) {
|
36
|
-
return
|
36
|
+
return theme.colors.alert_default;
|
37
37
|
}
|
38
38
|
return defaultColor;
|
39
39
|
};
|
@@ -13,7 +13,7 @@ import {
|
|
13
13
|
} from '@100mslive/react-sdk';
|
14
14
|
import { EmojiIcon } from '@100mslive/react-icons';
|
15
15
|
import { Dropdown } from '../../Dropdown';
|
16
|
-
import {
|
16
|
+
import { Flex } from '../../Layout';
|
17
17
|
import { Text } from '../../Text';
|
18
18
|
import { styled } from '../../Theme';
|
19
19
|
import { Tooltip } from '../../Tooltip';
|
@@ -79,13 +79,11 @@ export const EmojiReaction = () => {
|
|
79
79
|
<Dropdown.Trigger asChild data-testid="emoji_reaction_btn">
|
80
80
|
<IconButton>
|
81
81
|
<Tooltip title="Emoji reaction">
|
82
|
-
<
|
83
|
-
<EmojiIcon />
|
84
|
-
</Box>
|
82
|
+
<EmojiIcon />
|
85
83
|
</Tooltip>
|
86
84
|
</IconButton>
|
87
85
|
</Dropdown.Trigger>
|
88
|
-
<Dropdown.Content sideOffset={5} align="center" css={{ p: '$8', bg: '$
|
86
|
+
<Dropdown.Content sideOffset={5} align="center" css={{ p: '$8', bg: '$surface_default' }}>
|
89
87
|
{emojiReactionList.map((emojiLine, index) => (
|
90
88
|
<Flex key={index} justify="between" css={{ mb: '$8' }}>
|
91
89
|
{emojiLine.map(emoji => (
|
@@ -100,7 +98,7 @@ export const EmojiReaction = () => {
|
|
100
98
|
variant="sm"
|
101
99
|
inline={true}
|
102
100
|
css={{
|
103
|
-
color: '$
|
101
|
+
color: '$on_primary_medium',
|
104
102
|
}}
|
105
103
|
>
|
106
104
|
Reactions will be timed for Live Streaming viewers.{' '}
|
@@ -109,12 +107,17 @@ export const EmojiReaction = () => {
|
|
109
107
|
variant="sm"
|
110
108
|
inline={true}
|
111
109
|
css={{
|
112
|
-
color: '$
|
110
|
+
color: '$primary_bright',
|
113
111
|
fontWeight: '$semiBold',
|
114
112
|
}}
|
115
113
|
>
|
116
|
-
<a
|
117
|
-
{
|
114
|
+
<a
|
115
|
+
href={HLS_TIMED_METADATA_DOC_URL}
|
116
|
+
target="_blank"
|
117
|
+
rel="noopener noreferrer"
|
118
|
+
style={{ color: 'inherit', textDecoration: 'none' }}
|
119
|
+
>
|
120
|
+
Learn more.
|
118
121
|
</a>
|
119
122
|
</Text>
|
120
123
|
</div>
|
@@ -132,7 +135,7 @@ const EmojiContainer = styled('span', {
|
|
132
135
|
p: '$4',
|
133
136
|
'&:hover': {
|
134
137
|
p: '7px',
|
135
|
-
bg: '$
|
138
|
+
bg: '$surface_brighter',
|
136
139
|
borderRadius: '$1',
|
137
140
|
},
|
138
141
|
});
|
@@ -37,8 +37,8 @@ export class ErrorBoundary extends Component {
|
|
37
37
|
size: '100%',
|
38
38
|
height: '100vh',
|
39
39
|
width: '100%',
|
40
|
-
color: '$
|
41
|
-
backgroundColor: '
|
40
|
+
color: '$on_primary_high',
|
41
|
+
backgroundColor: '$background_default',
|
42
42
|
}}
|
43
43
|
>
|
44
44
|
<Box css={{ position: 'relative', overflow: 'hidden', r: '$3', height: '100%', width: '100%' }}>
|
@@ -1,8 +1,7 @@
|
|
1
1
|
import React, { Fragment, Suspense, useState } from 'react';
|
2
2
|
import { useMedia } from 'react-use';
|
3
|
-
import {
|
3
|
+
import { selectIsAllowedToPublish, useHMSStore, useScreenShare } from '@100mslive/react-sdk';
|
4
4
|
import { MusicIcon } from '@100mslive/react-icons';
|
5
|
-
import { Playlist } from '../../components/Playlist/Playlist';
|
6
5
|
import { config as cssConfig, Flex, Footer as AppFooter, Tooltip } from '../../../';
|
7
6
|
import IconButton from '../../IconButton';
|
8
7
|
import { AudioVideoToggle } from '../AudioVideoToggle';
|
@@ -64,8 +63,6 @@ export const ConferencingFooter = () => {
|
|
64
63
|
<AppFooter.Root>
|
65
64
|
<AppFooter.Left>
|
66
65
|
<ScreenshareAudio />
|
67
|
-
<Playlist type={HMSPlaylistType.audio} />
|
68
|
-
<Playlist type={HMSPlaylistType.video} />
|
69
66
|
<Suspense fallback="">
|
70
67
|
<VirtualBackground />
|
71
68
|
</Suspense>
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { Flex } from '../../Layout';
|
3
3
|
import { Loading } from '../../Loading';
|
4
|
+
import { Text } from '../../Text';
|
4
5
|
|
5
|
-
const FullPageProgress = () => (
|
6
|
-
<Flex justify="center" align="center" css={{ size: '100%' }}>
|
7
|
-
<Loading size={100} />
|
6
|
+
const FullPageProgress = ({ loaderColor = '$primary_default', loadingText = '' }) => (
|
7
|
+
<Flex direction="column" justify="center" align="center" css={{ size: '100%', color: loaderColor }}>
|
8
|
+
<Loading color="currentColor" size={100} />
|
9
|
+
{loadingText ? <Text css={{ mt: '$10', color: '$on_surface_high' }}>{loadingText}</Text> : null}
|
8
10
|
</Flex>
|
9
11
|
);
|
10
12
|
|
@@ -27,10 +27,7 @@ const GoLiveButton = () => {
|
|
27
27
|
<Button
|
28
28
|
data-testid="go_live"
|
29
29
|
variant={isStreamingSidepaneOpen ? 'standard' : 'primary'}
|
30
|
-
onClick={
|
31
|
-
toggleStreaming();
|
32
|
-
window.sessionStorage.setItem('userStartedStream', 'true');
|
33
|
-
}}
|
30
|
+
onClick={toggleStreaming}
|
34
31
|
icon
|
35
32
|
loading={isRTMPStartedFromUI || isHLSStartedFromUI}
|
36
33
|
disabled={isBrowserRecordingOn && !isStreamingOn}
|
@@ -10,7 +10,7 @@ export function HLSQualitySelector({ layers, onQualityChange, selection, isAuto
|
|
10
10
|
<Dropdown.Trigger asChild data-testid="quality_selector">
|
11
11
|
<Flex
|
12
12
|
css={{
|
13
|
-
color: '$
|
13
|
+
color: '$on_primary_high',
|
14
14
|
r: '$1',
|
15
15
|
cursor: 'pointer',
|
16
16
|
p: '$2',
|
@@ -44,7 +44,7 @@ export function HLSQualitySelector({ layers, onQualityChange, selection, isAuto
|
|
44
44
|
mx: '$2',
|
45
45
|
w: '$2',
|
46
46
|
h: '$2',
|
47
|
-
background: '$
|
47
|
+
background: '$on_primary_high',
|
48
48
|
r: '$1',
|
49
49
|
}}
|
50
50
|
/>
|
@@ -4,7 +4,7 @@ import { IconButton, Tooltip } from '../../../';
|
|
4
4
|
|
5
5
|
export const PlayButton = ({ onClick, isPaused }) => {
|
6
6
|
return (
|
7
|
-
<Tooltip title={
|
7
|
+
<Tooltip title={isPaused ? 'Play' : 'Pause'} side="top">
|
8
8
|
<IconButton onClick={onClick} data-testid="play_pause_btn">
|
9
9
|
{isPaused ? <PlayIcon width={32} height={32} /> : <PauseIcon width={32} height={32} />}
|
10
10
|
</IconButton>
|
@@ -52,7 +52,7 @@ export const VideoProgress = ({ onValueChange, hlsPlayer }) => {
|
|
52
52
|
css={{
|
53
53
|
display: 'inline',
|
54
54
|
width: `${videoProgress}%`,
|
55
|
-
background: '$
|
55
|
+
background: '$primary_default',
|
56
56
|
height: '0.3rem',
|
57
57
|
}}
|
58
58
|
/>
|
@@ -60,7 +60,7 @@ export const VideoProgress = ({ onValueChange, hlsPlayer }) => {
|
|
60
60
|
id="video-buffer"
|
61
61
|
css={{
|
62
62
|
width: `${bufferProgress - videoProgress}%`,
|
63
|
-
background: '$
|
63
|
+
background: '$primary_dim',
|
64
64
|
height: '0.3rem',
|
65
65
|
}}
|
66
66
|
/>
|
@@ -68,7 +68,7 @@ export const VideoProgress = ({ onValueChange, hlsPlayer }) => {
|
|
68
68
|
id="video-rest"
|
69
69
|
css={{
|
70
70
|
width: `${100 - bufferProgress}%`,
|
71
|
-
background: '$
|
71
|
+
background: '$surface_brighter',
|
72
72
|
height: '0.3rem',
|
73
73
|
}}
|
74
74
|
/>
|
@@ -6,7 +6,7 @@ export const VolumeControl = ({ hlsPlayer }) => {
|
|
6
6
|
const [volume, setVolume] = useState(hlsPlayer?.volume ?? 100);
|
7
7
|
|
8
8
|
return (
|
9
|
-
<Flex align="center" css={{ color: '$
|
9
|
+
<Flex align="center" css={{ color: '$on_primary_high' }}>
|
10
10
|
<SpeakerIcon
|
11
11
|
style={{ cursor: 'pointer' }}
|
12
12
|
onClick={() => {
|