@100mslive/roomkit-react 0.1.5 → 0.1.6-alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{HLSView-P57IRMAR.js → HLSView-HNVYG5VE.js} +309 -151
- package/dist/HLSView-HNVYG5VE.js.map +7 -0
- package/dist/Prebuilt/App.d.ts +3 -0
- package/dist/Prebuilt/AppContext.d.ts +13 -0
- package/dist/Prebuilt/common/PeersSorter.d.ts +21 -0
- package/dist/Prebuilt/components/Chat/ChatFooter.d.ts +7 -0
- package/dist/Prebuilt/components/Connection/ConnectionIndicator.d.ts +6 -0
- package/dist/Prebuilt/components/Connection/TileConnection.d.ts +10 -0
- package/dist/Prebuilt/components/Footer/ChatToggle.d.ts +4 -0
- package/dist/Prebuilt/components/Footer/Footer.d.ts +6 -0
- package/dist/Prebuilt/components/Footer/RoleAccordion.d.ts +14 -0
- package/dist/Prebuilt/components/Footer/RoleOptions.d.ts +6 -0
- package/dist/Prebuilt/components/Header/Header.d.ts +2 -0
- package/dist/Prebuilt/components/Header/StreamActions.d.ts +11 -0
- package/dist/Prebuilt/components/InsetTile.d.ts +2 -0
- package/dist/Prebuilt/components/Leave/DesktopLeaveRoom.d.ts +8 -0
- package/dist/Prebuilt/components/Leave/EndSessionContent.d.ts +9 -0
- package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +2196 -0
- package/dist/Prebuilt/components/Leave/LeaveCard.d.ts +11 -0
- package/dist/Prebuilt/components/Leave/LeaveRoom.d.ts +5 -0
- package/dist/Prebuilt/components/Leave/LeaveSessionContent.d.ts +8 -0
- package/dist/Prebuilt/components/Leave/MwebLeaveRoom.d.ts +8 -0
- package/dist/Prebuilt/components/MoreSettings/MoreSettings.d.ts +6 -0
- package/dist/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.d.ts +6 -0
- package/dist/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.d.ts +6 -0
- package/dist/Prebuilt/components/Pagination.d.ts +6 -0
- package/dist/Prebuilt/components/Preview/PreviewContainer.d.ts +3 -0
- package/dist/Prebuilt/components/Preview/PreviewForm.d.ts +10 -0
- package/dist/Prebuilt/components/Preview/PreviewJoin.d.ts +16 -0
- package/dist/Prebuilt/components/RoleChangeRequestModal.d.ts +2 -0
- package/dist/Prebuilt/components/SecondaryTiles.d.ts +3 -0
- package/dist/Prebuilt/components/VideoLayouts/EqualProminence.d.ts +3 -0
- package/dist/Prebuilt/components/VideoLayouts/Grid.d.ts +6 -0
- package/dist/Prebuilt/components/VideoLayouts/GridLayout.d.ts +12 -0
- package/dist/Prebuilt/components/VideoLayouts/ProminenceLayout.d.ts +15 -0
- package/dist/Prebuilt/components/VideoLayouts/RoleProminence.d.ts +3 -0
- package/dist/Prebuilt/components/VideoLayouts/ScreenshareLayout.d.ts +3 -0
- package/dist/Prebuilt/components/VideoLayouts/interface.d.ts +9 -0
- package/dist/Prebuilt/components/hooks/useAutoStartStreaming.d.ts +1 -0
- package/dist/Prebuilt/components/hooks/useRedirectToLeave.d.ts +3 -0
- package/dist/Prebuilt/components/hooks/useRoleProminencePeers.d.ts +5 -0
- package/dist/Prebuilt/components/hooks/useTileLayout.d.ts +13 -0
- package/dist/Prebuilt/components/hooks/useVideoTileLayout.d.ts +13 -0
- package/dist/Prebuilt/layouts/SidePane.d.ts +9 -0
- package/dist/Prebuilt/layouts/VideoStreamingSection.d.ts +7 -0
- package/dist/Prebuilt/plugins/whiteboard/ToggleWhiteboard.d.ts +5 -0
- package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.d.ts +1 -0
- package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.d.ts +1 -0
- package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.d.ts +17 -0
- package/dist/Prebuilt/provider/roomLayoutProvider/index.d.ts +6 -1
- package/dist/{VirtualBackground-GGCQJ5JM.js → VirtualBackground-UM2FOUHQ.js} +5 -11
- package/dist/VirtualBackground-UM2FOUHQ.js.map +7 -0
- package/dist/{chunk-P5X32KOD.js → chunk-364HP22I.js} +8 -5
- package/dist/chunk-364HP22I.js.map +7 -0
- package/dist/{chunk-OSM4QEQG.js → chunk-LYSAET4G.js} +3742 -5462
- package/dist/chunk-LYSAET4G.js.map +7 -0
- package/dist/chunk-POE7H4IE.js +898 -0
- package/dist/chunk-POE7H4IE.js.map +7 -0
- package/dist/conference-UWLJHMB2.js +5727 -0
- package/dist/conference-UWLJHMB2.js.map +7 -0
- package/dist/index.cjs.js +9655 -15326
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.js +2 -2
- package/dist/meta.cjs.json +2513 -3456
- package/dist/meta.esbuild.json +2807 -3838
- package/package.json +8 -7
- package/src/Button/Button.tsx +2 -2
- package/src/Prebuilt/App.tsx +58 -53
- package/src/Prebuilt/{AppContext.jsx → AppContext.tsx} +11 -3
- package/src/Prebuilt/IconButton.jsx +11 -0
- package/src/Prebuilt/Prebuilt.stories.tsx +1 -0
- package/src/Prebuilt/common/{PeersSorter.js → PeersSorter.ts} +16 -11
- package/src/Prebuilt/common/constants.js +4 -114
- package/src/Prebuilt/common/hooks.js +34 -1
- package/src/Prebuilt/common/utils.js +1 -9
- package/src/Prebuilt/components/AppData/AppData.jsx +11 -15
- package/src/Prebuilt/components/AppData/useUISettings.js +6 -10
- package/src/Prebuilt/components/AudioVideoToggle.jsx +10 -2
- package/src/Prebuilt/components/AuthToken.jsx +11 -42
- package/src/Prebuilt/components/Chat/Chat.jsx +75 -27
- package/src/Prebuilt/components/Chat/ChatBody.jsx +95 -36
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +199 -0
- package/src/Prebuilt/components/Chat/ChatParticipantHeader.jsx +84 -0
- package/src/Prebuilt/components/Chat/ChatSelector.jsx +16 -17
- package/src/Prebuilt/components/Chat/ChatSelectorContainer.jsx +81 -0
- package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +5 -4
- package/src/Prebuilt/components/Connection/{ConnectionIndicator.jsx → ConnectionIndicator.tsx} +12 -4
- package/src/Prebuilt/components/Connection/TileConnection.tsx +71 -0
- package/src/Prebuilt/components/EmojiReaction.jsx +19 -22
- package/src/Prebuilt/components/Footer/{ChatToggle.jsx → ChatToggle.tsx} +13 -9
- package/src/Prebuilt/components/Footer/Footer.tsx +98 -0
- package/src/Prebuilt/components/Footer/ParticipantList.jsx +187 -179
- package/src/Prebuilt/components/Footer/RoleAccordion.tsx +94 -0
- package/src/Prebuilt/components/Footer/RoleOptions.tsx +155 -0
- package/src/Prebuilt/components/FullPageProgress.jsx +3 -3
- package/src/Prebuilt/components/HMSVideo/Controls.jsx +3 -2
- package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.jsx +63 -18
- package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +2 -2
- package/src/Prebuilt/components/HMSVideo/PlayButton.jsx +1 -1
- package/src/Prebuilt/components/HMSVideo/VideoProgress.jsx +5 -6
- package/src/Prebuilt/components/HMSVideo/VideoTime.jsx +3 -3
- package/src/Prebuilt/components/HMSVideo/VolumeControl.jsx +38 -9
- package/src/Prebuilt/components/Header/{ConferencingHeader.jsx → Header.tsx} +9 -7
- package/src/Prebuilt/components/Header/HeaderComponents.jsx +13 -4
- package/src/Prebuilt/components/Header/{StreamActions.jsx → StreamActions.tsx} +54 -67
- package/src/Prebuilt/components/Header/common.jsx +5 -2
- package/src/Prebuilt/components/Header/index.tsx +1 -0
- package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.jsx +23 -4
- package/src/Prebuilt/components/InsetTile.tsx +128 -0
- package/src/Prebuilt/components/{MoreSettings/SplitComponents/DesktopLeaveRoom.jsx → Leave/DesktopLeaveRoom.tsx} +67 -25
- package/src/Prebuilt/components/{EndSessionContent.jsx → Leave/EndSessionContent.tsx} +18 -11
- package/src/Prebuilt/components/Leave/LeaveAtoms.tsx +26 -0
- package/src/Prebuilt/components/Leave/LeaveCard.tsx +36 -0
- package/src/Prebuilt/components/Leave/LeaveRoom.tsx +66 -0
- package/src/Prebuilt/components/{LeaveSessionContent.jsx → Leave/LeaveSessionContent.tsx} +20 -6
- package/src/Prebuilt/components/{MoreSettings/SplitComponents/MwebLeaveRoom.jsx → Leave/MwebLeaveRoom.tsx} +43 -18
- package/src/Prebuilt/components/MetaActions.jsx +15 -23
- package/src/Prebuilt/components/MoreSettings/ActionTile.jsx +5 -0
- package/src/Prebuilt/components/MoreSettings/ChangeNameContent.jsx +16 -7
- package/src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx +1 -1
- package/src/Prebuilt/components/MoreSettings/FullScreenItem.jsx +1 -4
- package/src/Prebuilt/components/MoreSettings/MoreSettings.tsx +27 -0
- package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx +216 -0
- package/src/Prebuilt/components/MoreSettings/SplitComponents/{MwebOptions.jsx → MwebOptions.tsx} +107 -45
- package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +3 -1
- package/src/Prebuilt/components/Notifications/Notifications.jsx +46 -30
- package/src/Prebuilt/components/Notifications/PeerNotifications.jsx +14 -2
- package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +10 -4
- package/src/Prebuilt/components/Notifications/ReconnectNotifications.jsx +5 -11
- package/src/Prebuilt/components/PIP/PIPComponent.jsx +7 -16
- package/src/Prebuilt/components/PIP/PIPManager.js +1 -0
- package/src/Prebuilt/components/Pagination.tsx +60 -0
- package/src/Prebuilt/components/Playlist/Playlist.jsx +1 -6
- package/src/Prebuilt/components/PostLeave.jsx +7 -7
- package/src/Prebuilt/components/Preview/{PreviewContainer.jsx → PreviewContainer.tsx} +16 -15
- package/src/Prebuilt/components/Preview/{PreviewForm.jsx → PreviewForm.tsx} +16 -8
- package/src/Prebuilt/components/Preview/{PreviewJoin.jsx → PreviewJoin.tsx} +48 -22
- package/src/Prebuilt/components/RaiseHand.jsx +0 -7
- package/src/Prebuilt/components/RoleChangeRequestModal.tsx +119 -0
- package/src/Prebuilt/components/ScreenshareDisplay.jsx +4 -10
- package/src/Prebuilt/components/ScreenshareTile.jsx +43 -36
- package/src/Prebuilt/components/SecondaryTiles.tsx +36 -0
- package/src/Prebuilt/components/Settings/LayoutSettings.jsx +2 -12
- package/src/Prebuilt/components/Settings/NotificationSettings.jsx +3 -9
- package/src/Prebuilt/components/Settings/SettingsModal.jsx +3 -9
- package/src/Prebuilt/components/StatsForNerds.jsx +3 -1
- package/src/Prebuilt/components/TileMenu/TileMenu.jsx +16 -17
- package/src/Prebuilt/components/TileMenu/TileMenuContent.jsx +33 -27
- package/src/Prebuilt/components/Toast/ToastConfig.jsx +58 -15
- package/src/Prebuilt/components/VideoLayouts/EqualProminence.tsx +65 -0
- package/src/Prebuilt/components/VideoLayouts/Grid.tsx +43 -0
- package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +110 -0
- package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +74 -0
- package/src/Prebuilt/components/VideoLayouts/RoleProminence.tsx +59 -0
- package/src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx +52 -0
- package/src/Prebuilt/components/VideoLayouts/interface.ts +10 -0
- package/src/Prebuilt/components/VideoTile.jsx +116 -74
- package/src/Prebuilt/components/conference.jsx +86 -85
- package/src/Prebuilt/components/hooks/useAutoStartStreaming.tsx +57 -0
- package/src/Prebuilt/components/hooks/useMetadata.jsx +19 -3
- package/src/Prebuilt/components/hooks/useRedirectToLeave.tsx +34 -0
- package/src/Prebuilt/components/hooks/useRoleProminencePeers.tsx +38 -0
- package/src/Prebuilt/components/hooks/useTileLayout.tsx +127 -0
- package/src/Prebuilt/components/hooks/useVideoTileLayout.ts +26 -0
- package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +5 -72
- package/src/Prebuilt/components/pdfAnnotator/submitPdf.jsx +4 -45
- package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +2 -17
- package/src/Prebuilt/components/peerTileUtils.jsx +1 -1
- package/src/Prebuilt/images/empty-chat.svg +12 -0
- package/src/Prebuilt/layouts/EmbedView.jsx +17 -50
- package/src/Prebuilt/layouts/HLSView.jsx +138 -51
- package/src/Prebuilt/layouts/PDFView.jsx +1 -11
- package/src/Prebuilt/layouts/SidePane.tsx +108 -0
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +96 -0
- package/src/Prebuilt/layouts/WhiteboardView.jsx +10 -34
- package/src/Prebuilt/plugins/FlyingEmoji.jsx +14 -2
- package/src/Prebuilt/plugins/VirtualBackground/VirtualBackground.jsx +1 -4
- package/src/Prebuilt/plugins/whiteboard/{ToggleWhiteboard.jsx → ToggleWhiteboard.tsx} +5 -9
- package/src/Prebuilt/primitives/DialogContent.jsx +15 -11
- package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +17 -2
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +36 -13
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.ts +10 -0
- package/src/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.ts +65 -0
- package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +17 -6
- package/src/Prebuilt/services/FeatureFlags.jsx +0 -1
- package/src/VideoTile/StyledVideoTile.tsx +1 -0
- package/dist/HLSView-P57IRMAR.js.map +0 -7
- package/dist/PinnedTrackView-4FYJEBTB.js +0 -102
- package/dist/PinnedTrackView-4FYJEBTB.js.map +0 -7
- package/dist/VirtualBackground-GGCQJ5JM.js.map +0 -7
- package/dist/chunk-IVTWKQI3.js +0 -827
- package/dist/chunk-IVTWKQI3.js.map +0 -7
- package/dist/chunk-OSM4QEQG.js.map +0 -7
- package/dist/chunk-P5X32KOD.js.map +0 -7
- package/dist/chunk-RVCZPPTL.js +0 -1100
- package/dist/chunk-RVCZPPTL.js.map +0 -7
- package/dist/conference-P6I6ESVF.js +0 -8995
- package/dist/conference-P6I6ESVF.js.map +0 -7
- package/src/Prebuilt/components/AudioLevel/BeamSpeakerLabelsLogging.jsx +0 -16
- package/src/Prebuilt/components/Chat/ChatFooter.jsx +0 -150
- package/src/Prebuilt/components/Chat/ChatHeader.jsx +0 -67
- package/src/Prebuilt/components/Connection/TileConnection.jsx +0 -39
- package/src/Prebuilt/components/EqualProminence.jsx +0 -180
- package/src/Prebuilt/components/FirstPersonDisplay.jsx +0 -50
- package/src/Prebuilt/components/Footer/Footer.jsx +0 -73
- package/src/Prebuilt/components/Header/Header.jsx +0 -8
- package/src/Prebuilt/components/Header/StreamingHeader.jsx +0 -54
- package/src/Prebuilt/components/LeaveCard.jsx +0 -19
- package/src/Prebuilt/components/LeaveRoom.jsx +0 -94
- package/src/Prebuilt/components/MoreSettings/MoreSettings.jsx +0 -10
- package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.jsx +0 -219
- package/src/Prebuilt/components/Notifications/MessageNotifications.jsx +0 -25
- package/src/Prebuilt/components/Pagination.jsx +0 -29
- package/src/Prebuilt/components/RoleChangeRequestModal.jsx +0 -26
- package/src/Prebuilt/components/VideoList.jsx +0 -73
- package/src/Prebuilt/components/gridView.jsx +0 -85
- package/src/Prebuilt/components/hooks/useFeatures.js +0 -22
- package/src/Prebuilt/components/hooks/useNavigation.js +0 -19
- package/src/Prebuilt/components/hooks/useSkipPreview.jsx +0 -20
- package/src/Prebuilt/components/pdfAnnotator/pdfErrorView.jsx +0 -29
- package/src/Prebuilt/images/Logo.svg +0 -8
- package/src/Prebuilt/layouts/ActiveSpeakerView.jsx +0 -34
- package/src/Prebuilt/layouts/InsetView.jsx +0 -260
- package/src/Prebuilt/layouts/PinnedTrackView.jsx +0 -59
- package/src/Prebuilt/layouts/SidePane.jsx +0 -52
- package/src/Prebuilt/layouts/mainGridView.jsx +0 -98
- package/src/Prebuilt/layouts/mainView.jsx +0 -141
- package/src/Prebuilt/layouts/screenShareView.jsx +0 -183
- /package/{src/Prebuilt/components/Header/index.jsx → dist/Prebuilt/components/Header/index.d.ts} +0 -0
- /package/src/Prebuilt/components/{ScreenShare.jsx → ScreenShareToggle.jsx} +0 -0
- /package/src/{assets → Prebuilt/images}/android-perm-1.png +0 -0
- /package/src/{assets → Prebuilt/images}/ios-perm-0.png +0 -0
@@ -1,7 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"version": 3,
|
3
|
-
"sources": ["../src/Prebuilt/components/VideoTile.jsx", "../src/Prebuilt/components/TileMenu/TileMenu.jsx", "../src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx", "../src/Prebuilt/components/MoreSettings/ChangeNameContent.jsx", "../src/Prebuilt/components/TileMenu/TileMenuContent.jsx", "../src/Prebuilt/components/peerTileUtils.jsx", "../src/Prebuilt/components/AppData/useAppConfig.js", "../src/Prebuilt/components/VideoList.jsx", "../src/Prebuilt/components/Pagination.jsx", "../src/Prebuilt/components/ScreenshareTile.jsx"],
|
4
|
-
"sourcesContent": ["import React, { Fragment, useCallback, useMemo, useState } from 'react';\nimport { useMedia } from 'react-use';\nimport {\n selectAudioTrackByPeerID,\n selectIsPeerAudioEnabled,\n selectLocalPeerID,\n selectPeerMetadata,\n selectPeerNameByID,\n selectVideoTrackByID,\n selectVideoTrackByPeerID,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport { BrbTileIcon, HandIcon, MicOffIcon } from '@100mslive/react-icons';\nimport TileConnection from './Connection/TileConnection';\nimport TileMenu from './TileMenu/TileMenu';\nimport { useBorderAudioLevel } from '../../AudioLevel';\nimport { Avatar } from '../../Avatar';\nimport { VideoTileStats } from '../../Stats';\nimport { config as cssConfig } from '../../Theme';\nimport { Video } from '../../Video';\nimport { StyledVideoTile } from '../../VideoTile';\nimport { getVideoTileLabel } from './peerTileUtils';\nimport { useAppConfig } from './AppData/useAppConfig';\nimport { useIsHeadless, useUISettings } from './AppData/useUISettings';\nimport { useShowStreamingUI } from '../common/hooks';\nimport { UI_SETTINGS } from '../common/constants';\n\nconst Tile = ({\n peerId,\n trackId,\n width,\n height,\n objectFit = 'cover',\n canMinimise = false,\n isDragabble = false,\n rootCSS = {},\n containerCSS = {},\n}) => {\n const trackSelector = trackId ? selectVideoTrackByID(trackId) : selectVideoTrackByPeerID(peerId);\n const track = useHMSStore(trackSelector);\n const peerName = useHMSStore(selectPeerNameByID(peerId));\n const audioTrack = useHMSStore(selectAudioTrackByPeerID(peerId));\n const localPeerID = useHMSStore(selectLocalPeerID);\n const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);\n const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);\n const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);\n const isHeadless = useIsHeadless();\n const isAudioMuted = !useHMSStore(selectIsPeerAudioEnabled(peerId));\n const isVideoMuted = !track?.enabled;\n const [isMouseHovered, setIsMouseHovered] = useState(false);\n const borderAudioRef = useBorderAudioLevel(audioTrack?.id);\n const isVideoDegraded = track?.degraded;\n const isLocal = localPeerID === peerId;\n const isMobile = useMedia(cssConfig.media.md);\n const showStreamingUI = useShowStreamingUI();\n const label = getVideoTileLabel({\n peerName,\n track,\n isLocal,\n });\n const onHoverHandler = useCallback(event => {\n setIsMouseHovered(event.type === 'mouseenter');\n }, []);\n const headlessConfig = useAppConfig('headlessConfig');\n const hideLabel = isHeadless && headlessConfig?.hideTileName;\n const isTileBigEnoughToShowStats = height >= 180 && width >= 180;\n const avatarSize = useMemo(() => {\n if (!width || !height) {\n return undefined;\n }\n if (width <= 150 || height <= 150) {\n return 'small';\n } else if (width <= 300 || height <= 300) {\n return 'medium';\n }\n return 'large';\n }, [width, height]);\n\n return (\n <StyledVideoTile.Root\n css={{\n width,\n height,\n padding: getPadding({\n isHeadless,\n tileOffset: headlessConfig?.tileOffset,\n hideAudioLevel: headlessConfig?.hideAudioLevel,\n }),\n ...rootCSS,\n }}\n data-testid={`participant_tile_${peerName}`}\n >\n {peerName !== undefined ? (\n <StyledVideoTile.Container\n onMouseEnter={onHoverHandler}\n onMouseLeave={onHoverHandler}\n ref={isHeadless && headlessConfig?.hideAudioLevel ? undefined : borderAudioRef}\n noRadius={isHeadless && Number(headlessConfig?.tileOffset) === 0}\n css={containerCSS}\n >\n {showStatsOnTiles && isTileBigEnoughToShowStats ? (\n <VideoTileStats audioTrackID={audioTrack?.id} videoTrackID={track?.id} peerID={peerId} isLocal={isLocal} />\n ) : null}\n\n {track ? (\n <Video\n trackId={track?.id}\n attach={isLocal ? undefined : !isAudioOnly}\n mirror={\n mirrorLocalVideo &&\n peerId === localPeerID &&\n track?.source === 'regular' &&\n track?.facingMode !== 'environment'\n }\n degraded={isVideoDegraded}\n noRadius={isHeadless && Number(headlessConfig?.tileOffset) === 0}\n data-testid=\"participant_video_tile\"\n css={{\n objectFit,\n }}\n />\n ) : null}\n {isVideoMuted || isVideoDegraded || (!isLocal && isAudioOnly) ? (\n <StyledVideoTile.AvatarContainer>\n <Avatar name={peerName || ''} data-testid=\"participant_avatar_icon\" size={avatarSize} />\n </StyledVideoTile.AvatarContainer>\n ) : null}\n\n {showAudioMuted({\n hideTileAudioMute: headlessConfig?.hideTileAudioMute,\n isHeadless,\n isAudioMuted,\n }) ? (\n <StyledVideoTile.AudioIndicator\n data-testid=\"participant_audio_mute_icon\"\n size={width && height && (width < 180 || height < 180) ? 'small' : 'medium'}\n >\n <MicOffIcon />\n </StyledVideoTile.AudioIndicator>\n ) : null}\n {(isMouseHovered || isDragabble) && !isHeadless ? (\n <TileMenu\n peerID={peerId}\n audioTrackID={audioTrack?.id}\n videoTrackID={track?.id}\n canMinimise={canMinimise}\n />\n ) : null}\n <PeerMetadata peerId={peerId} />\n {showStreamingUI && isMobile ? null : (\n <TileConnection hideLabel={hideLabel} name={label} isTile peerId={peerId} width={width} />\n )}\n </StyledVideoTile.Container>\n ) : null}\n </StyledVideoTile.Root>\n );\n};\n\nconst metaStyles = { top: '$4', left: '$4' };\n\nconst PeerMetadata = ({ peerId }) => {\n const metaData = useHMSStore(selectPeerMetadata(peerId));\n const isHandRaised = metaData?.isHandRaised || false;\n const isBRB = metaData?.isBRBOn || false;\n\n return (\n <Fragment>\n {isHandRaised ? (\n <StyledVideoTile.AttributeBox css={metaStyles} data-testid=\"raiseHand_icon_onTile\">\n <HandIcon width={24} height={24} />\n </StyledVideoTile.AttributeBox>\n ) : null}\n {isBRB ? (\n <StyledVideoTile.AttributeBox css={metaStyles} data-testid=\"brb_icon_onTile\">\n <BrbTileIcon width={24} height={24} />\n </StyledVideoTile.AttributeBox>\n ) : null}\n </Fragment>\n );\n};\n\nconst VideoTile = React.memo(Tile);\n\nconst showAudioMuted = ({ hideTileAudioMute, isHeadless, isAudioMuted }) => {\n if (!isHeadless) {\n return isAudioMuted;\n }\n return isAudioMuted && !hideTileAudioMute;\n};\n\nconst getPadding = ({ isHeadless, tileOffset, hideAudioLevel }) => {\n if (!isHeadless || isNaN(Number(tileOffset))) {\n return undefined;\n }\n // Adding extra padding of 3px to ensure that the audio border is visible properly between tiles when tileOffset is 0.\n return Number(tileOffset) === 0 ? (hideAudioLevel ? 0 : 3) : undefined;\n};\n\nexport default VideoTile;\n", "import React, { useState } from 'react';\nimport { useMedia } from 'react-use';\nimport {\n selectLocalPeerID,\n selectPeerByID,\n selectPermissions,\n selectTemplateAppData,\n selectTrackByID,\n selectVideoTrackByPeerID,\n useHMSStore,\n useRemoteAVToggle,\n} from '@100mslive/react-sdk';\nimport { CrossIcon, VerticalMenuIcon } from '@100mslive/react-icons';\nimport { Box, Flex } from '../../../Layout';\nimport { Sheet } from '../../../Sheet';\nimport { Text } from '../../../Text';\nimport { config as cssConfig, useTheme } from '../../../Theme';\nimport { StyledMenuTile } from '../../../TileMenu';\nimport { ChangeNameModal } from '../MoreSettings/ChangeNameModal';\nimport { TileMenuContent } from './TileMenuContent';\nimport { useDropdownList } from '../hooks/useDropdownList';\nimport { useIsFeatureEnabled } from '../hooks/useFeatures';\nimport { FEATURE_LIST } from '../../common/constants';\n\n/**\n * Taking peerID as peer won't necesarilly have tracks\n */\nconst TileMenu = ({ audioTrackID, videoTrackID, peerID, isScreenshare = false, canMinimise }) => {\n const [open, setOpen] = useState(false);\n const { theme } = useTheme();\n\n const localPeerID = useHMSStore(selectLocalPeerID);\n const isLocal = localPeerID === peerID;\n const { removeOthers, changeRole } = useHMSStore(selectPermissions);\n const { setVolume, toggleAudio, toggleVideo } = useRemoteAVToggle(audioTrackID, videoTrackID);\n const showSpotlight = changeRole;\n\n const isPrimaryVideoTrack = useHMSStore(selectVideoTrackByPeerID(peerID))?.id === videoTrackID;\n const uiMode = useHMSStore(selectTemplateAppData).uiMode;\n const isInset = uiMode === 'inset';\n\n const isPinEnabled = useIsFeatureEnabled(FEATURE_LIST.PIN_TILE);\n const showPinAction = isPinEnabled && (audioTrackID || (videoTrackID && isPrimaryVideoTrack)) && !isInset;\n\n const track = useHMSStore(selectTrackByID(videoTrackID));\n const hideSimulcastLayers = !track?.layerDefinitions?.length || track.degraded || !track.enabled;\n const isMobile = useMedia(cssConfig.media.md);\n const peer = useHMSStore(selectPeerByID(peerID));\n const [showNameChangeModal, setShowNameChangeModal] = useState(false);\n useDropdownList({ open, name: 'TileMenu' });\n\n if (!(removeOthers || toggleAudio || toggleVideo || setVolume || showPinAction) && hideSimulcastLayers) {\n return null;\n }\n\n if (isInset && isLocal) {\n return null;\n }\n const openNameChangeModal = () => setShowNameChangeModal(true);\n\n const props = {\n isLocal,\n isScreenshare,\n audioTrackID,\n videoTrackID,\n peerID,\n isPrimaryVideoTrack,\n showSpotlight,\n showPinAction,\n canMinimise,\n openNameChangeModal,\n };\n\n return (\n <>\n <StyledMenuTile.Root open={open} onOpenChange={setOpen}>\n <StyledMenuTile.Trigger\n data-testid=\"participant_menu_btn\"\n css={{ bg: `${theme.colors.background_dim.value}A3` }}\n onClick={e => e.stopPropagation()}\n className={isMobile ? '__cancel-drag-event' : ''}\n >\n <VerticalMenuIcon width={20} height={20} />\n </StyledMenuTile.Trigger>\n\n {isMobile ? (\n <Sheet.Root open={open} onOpenChange={setOpen}>\n <Sheet.Content css={{ bg: '$surface_dim', pt: '$8' }}>\n <Flex\n css={{\n color: '$on_surface_high',\n display: 'flex',\n w: '100%',\n justifyContent: 'space-between',\n alignItems: 'center',\n px: '$10',\n pb: '$8',\n borderBottom: '1px solid $border_default',\n }}\n >\n <Box>\n <Text css={{ color: '$on_surface_high', fontWeight: '$semiBold' }}>\n {peer.name}\n {isLocal ? ` (You)` : null}\n </Text>\n {peer?.roleName ? (\n <Text variant=\"xs\" css={{ color: '$on_surface_low', mt: '$2' }}>\n {peer.roleName}\n </Text>\n ) : null}\n </Box>\n\n <Sheet.Close css={{ color: 'inherit' }}>\n <CrossIcon />\n </Sheet.Close>\n </Flex>\n <Box css={{ px: '$8', pb: '$10' }}>\n <TileMenuContent {...props} closeSheetOnClick={() => setOpen(false)} />\n </Box>\n </Sheet.Content>\n </Sheet.Root>\n ) : (\n <StyledMenuTile.Content side=\"top\" align=\"end\">\n <TileMenuContent {...props} />\n </StyledMenuTile.Content>\n )}\n </StyledMenuTile.Root>\n {showNameChangeModal && <ChangeNameModal onOpenChange={setShowNameChangeModal} />}\n </>\n );\n};\n\nexport default TileMenu;\n", "import React, { useState } from 'react';\nimport { useMedia } from 'react-use';\nimport { selectLocalPeerName, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { config as cssConfig, Dialog } from '../../../';\nimport { Sheet } from '../../../Sheet';\nimport { ToastManager } from '../Toast/ToastManager';\nimport { ChangeNameContent } from './ChangeNameContent';\nimport { UserPreferencesKeys, useUserPreferences } from '../hooks/useUserPreferences';\n\nexport const ChangeNameModal = ({ onOpenChange, openParentSheet = null }) => {\n const [previewPreference, setPreviewPreference] = useUserPreferences(UserPreferencesKeys.PREVIEW);\n const hmsActions = useHMSActions();\n const localPeerName = useHMSStore(selectLocalPeerName);\n const [currentName, setCurrentName] = useState(localPeerName);\n const isMobile = useMedia(cssConfig.media.md);\n\n const changeName = async () => {\n const name = currentName.trim();\n if (!name || name === localPeerName) {\n return;\n }\n try {\n await hmsActions.changeName(name);\n setPreviewPreference({\n ...(previewPreference || {}),\n name,\n });\n } catch (error) {\n console.error('failed to update name', error);\n ToastManager.addToast({ title: error.message });\n } finally {\n onOpenChange(false);\n }\n };\n\n const props = {\n changeName,\n setCurrentName,\n currentName,\n localPeerName,\n isMobile,\n onExit: () => onOpenChange(false),\n onBackClick: () => {\n onOpenChange(false);\n openParentSheet();\n },\n };\n\n if (isMobile) {\n return (\n <Sheet.Root defaultOpen onOpenChange={onOpenChange}>\n <Sheet.Content css={{ bg: '$surface_dim', py: '$8', px: 0 }}>\n <ChangeNameContent {...props} />\n </Sheet.Content>\n </Sheet.Root>\n );\n }\n\n return (\n <Dialog.Root defaultOpen onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Overlay />\n <Dialog.Content css={{ bg: '$surface_dim', width: 'min(400px,80%)', p: '$10' }}>\n <ChangeNameContent {...props} />\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\n", "import React from 'react';\nimport { ChevronLeftIcon, CrossIcon } from '@100mslive/react-icons';\nimport { Button } from '../../../Button';\nimport { Input } from '../../../Input';\nimport { Box, Flex } from '../../../Layout';\nimport { Text } from '../../../Text';\n\nexport const ChangeNameContent = ({\n changeName,\n setCurrentName,\n currentName,\n localPeerName,\n isMobile,\n onExit,\n onBackClick,\n}) => {\n return (\n <form\n onSubmit={async e => {\n e.preventDefault();\n await changeName();\n }}\n >\n <Text\n variant={isMobile ? 'md' : 'lg'}\n css={{\n color: '$on_surface_high',\n fontWeight: '$semiBold',\n display: 'flex',\n borderBottom: isMobile ? '1px solid $border_default' : '',\n pb: '$6',\n mb: '$8',\n px: isMobile ? '$8' : '',\n }}\n >\n {isMobile ? <ChevronLeftIcon onClick={onBackClick} style={{ marginRight: '0.5rem' }} /> : null}\n Change Name\n <Box css={{ color: 'inherit', ml: 'auto' }} onClick={onExit}>\n <CrossIcon />\n </Box>\n </Text>\n <Flex justify=\"center\" align=\"center\" css={{ my: '$8', w: '100%', px: isMobile ? '$8' : '' }}>\n <Input\n css={{ width: '100%', bg: '$surface_default' }}\n value={currentName}\n onChange={e => {\n setCurrentName(e.target.value);\n }}\n autoComplete=\"name\"\n required\n data-testid=\"change_name_field\"\n onKeyDown={async e => {\n if (e.key === 'Enter' && currentName.trim().length > 0 && currentName !== localPeerName) {\n e.preventDefault();\n changeName();\n }\n }}\n />\n </Flex>\n\n <Flex\n justify=\"between\"\n align=\"center\"\n css={{\n width: '100%',\n gap: '$md',\n mt: '$10',\n px: isMobile ? '$4' : '',\n }}\n >\n {isMobile ? null : (\n <Button\n variant=\"standard\"\n css={{ w: '100%' }}\n outlined\n type=\"submit\"\n disabled={!localPeerName}\n onClick={onExit}\n >\n Cancel\n </Button>\n )}\n\n <Button\n variant=\"primary\"\n css={{ width: '100%' }}\n type=\"submit\"\n disabled={!currentName.trim() || currentName.trim() === localPeerName}\n data-testid=\"popup_change_btn\"\n >\n Change\n </Button>\n </Flex>\n </form>\n );\n};\n", "import React, { Fragment } from 'react';\nimport {\n selectPermissions,\n selectSessionStore,\n selectTrackByID,\n useCustomEvent,\n useHMSActions,\n useHMSStore,\n useRemoteAVToggle,\n} from '@100mslive/react-sdk';\nimport {\n MicOffIcon,\n MicOnIcon,\n PencilIcon,\n PinIcon,\n RemoveUserIcon,\n ShareScreenIcon,\n ShrinkIcon,\n SpeakerIcon,\n StarIcon,\n VideoOffIcon,\n VideoOnIcon,\n} from '@100mslive/react-icons';\nimport { Box, Flex } from '../../../Layout';\nimport { Slider } from '../../../Slider';\nimport { Text } from '../../../Text';\nimport { StyledMenuTile } from '../../../TileMenu';\nimport { ToastManager } from '../Toast/ToastManager';\nimport { useSetAppDataByKey } from '../AppData/useUISettings';\nimport { useDropdownSelection } from '../hooks/useDropdownSelection';\nimport { useIsFeatureEnabled } from '../hooks/useFeatures';\nimport { APP_DATA, FEATURE_LIST, REMOTE_STOP_SCREENSHARE_TYPE, SESSION_STORE_KEY } from '../../common/constants';\n\nconst isSameTile = ({ trackId, videoTrackID, audioTrackID }) =>\n trackId && ((videoTrackID && videoTrackID === trackId) || (audioTrackID && audioTrackID === trackId));\n\nconst spacingCSS = { '@md': { my: '$8', fontWeight: '$semiBold', fontSize: 'sm' } };\n\nconst SpotlightActions = ({\n peerId,\n onSpotLightClick = () => {\n return;\n },\n}) => {\n const hmsActions = useHMSActions();\n const spotlightPeerId = useHMSStore(selectSessionStore(SESSION_STORE_KEY.SPOTLIGHT));\n const isTileSpotlighted = spotlightPeerId === peerId;\n\n const setSpotlightPeerId = peer =>\n hmsActions.sessionStore\n .set(SESSION_STORE_KEY.SPOTLIGHT, peer)\n .catch(err => ToastManager.addToast({ title: err.description }));\n\n return (\n <StyledMenuTile.ItemButton\n css={spacingCSS}\n onClick={() => {\n if (isTileSpotlighted) {\n setSpotlightPeerId();\n } else {\n setSpotlightPeerId(peerId);\n }\n onSpotLightClick();\n }}\n >\n <StarIcon />\n <span>{isTileSpotlighted ? 'Remove from Spotlight' : 'Spotlight Tile for everyone'}</span>\n </StyledMenuTile.ItemButton>\n );\n};\n\nconst PinActions = ({ audioTrackID, videoTrackID }) => {\n const [pinnedTrackId, setPinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);\n\n const isTilePinned = isSameTile({\n trackId: pinnedTrackId,\n videoTrackID,\n audioTrackID,\n });\n\n return (\n <>\n <StyledMenuTile.ItemButton\n css={spacingCSS}\n onClick={() => (isTilePinned ? setPinnedTrackId() : setPinnedTrackId(videoTrackID || audioTrackID))}\n >\n <PinIcon />\n <span>{isTilePinned ? 'Unpin' : 'Pin'} Tile for myself</span>\n </StyledMenuTile.ItemButton>\n </>\n );\n};\n\nconst MinimiseInset = () => {\n const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);\n\n return (\n <>\n <StyledMenuTile.ItemButton css={spacingCSS} onClick={() => setMinimised(!minimised)}>\n <ShrinkIcon />\n <span>{minimised ? 'Show' : 'Minimise'} your video</span>\n </StyledMenuTile.ItemButton>\n </>\n );\n};\n\nconst SimulcastLayers = ({ trackId }) => {\n const track = useHMSStore(selectTrackByID(trackId));\n const actions = useHMSActions();\n const bg = useDropdownSelection();\n if (!track?.layerDefinitions?.length || track.degraded || !track.enabled) {\n return null;\n }\n const currentLayer = track.layerDefinitions.find(layer => layer.layer === track.layer);\n return (\n <Fragment>\n <StyledMenuTile.ItemButton css={{ color: '$on_surface_medium', cursor: 'default' }}>\n Select maximum resolution\n </StyledMenuTile.ItemButton>\n {track.layerDefinitions.map(layer => {\n return (\n <StyledMenuTile.ItemButton\n key={layer.layer}\n onClick={async () => {\n await actions.setPreferredLayer(trackId, layer.layer);\n }}\n css={{\n justifyContent: 'space-between',\n bg: track.preferredLayer === layer.layer ? bg : undefined,\n '&:hover': {\n bg: track.preferredLayer === layer.layer ? bg : undefined,\n },\n }}\n >\n <Text\n as=\"span\"\n css={{\n textTransform: 'capitalize',\n mr: '$2',\n fontWeight: track.preferredLayer === layer.layer ? '$semiBold' : '$regular',\n }}\n >\n {layer.layer}\n </Text>\n <Text as=\"span\" variant=\"xs\" css={{ color: '$on_surface_medium' }}>\n {layer.resolution.width}x{layer.resolution.height}\n </Text>\n </StyledMenuTile.ItemButton>\n );\n })}\n <StyledMenuTile.ItemButton>\n <Text as=\"span\" variant=\"xs\" css={{ color: '$on_surface_medium' }}>\n Currently streaming:\n <Text\n as=\"span\"\n variant=\"xs\"\n css={{\n fontWeight: '$semiBold',\n textTransform: 'capitalize',\n color: '$on_surface_medium',\n ml: '$2',\n }}\n >\n {currentLayer ? (\n <>\n {track.layer} ({currentLayer.resolution.width}x{currentLayer.resolution.height})\n </>\n ) : (\n '-'\n )}\n </Text>\n </Text>\n </StyledMenuTile.ItemButton>\n </Fragment>\n );\n};\n\nexport const TileMenuContent = props => {\n const actions = useHMSActions();\n const { removeOthers } = useHMSStore(selectPermissions);\n const {\n videoTrackID,\n audioTrackID,\n isLocal,\n isScreenshare,\n showSpotlight,\n showPinAction,\n peerID,\n canMinimise,\n closeSheetOnClick = () => {\n return;\n },\n openNameChangeModal = () => {\n return;\n },\n } = props;\n\n const { isAudioEnabled, isVideoEnabled, setVolume, toggleAudio, toggleVideo, volume } = useRemoteAVToggle(\n audioTrackID,\n videoTrackID,\n );\n\n const { sendEvent } = useCustomEvent({\n type: REMOTE_STOP_SCREENSHARE_TYPE,\n });\n\n const isChangeNameEnabled = useIsFeatureEnabled(FEATURE_LIST.CHANGE_NAME);\n\n return isLocal ? (\n (showPinAction || canMinimise) && (\n <>\n {showPinAction && <PinActions audioTrackID={audioTrackID} videoTrackID={videoTrackID} />}\n {showSpotlight && <SpotlightActions peerId={peerID} onSpotLightClick={() => closeSheetOnClick()} />}\n {canMinimise && <MinimiseInset />}\n {isChangeNameEnabled ? (\n <StyledMenuTile.ItemButton\n onClick={() => {\n openNameChangeModal();\n closeSheetOnClick();\n }}\n >\n <PencilIcon />\n <Text variant=\"sm\" css={{ fontWeight: '$semiBold' }}>\n Change Name\n </Text>\n </StyledMenuTile.ItemButton>\n ) : null}\n </>\n )\n ) : (\n <>\n {toggleVideo ? (\n <StyledMenuTile.ItemButton\n css={spacingCSS}\n onClick={() => {\n toggleVideo();\n closeSheetOnClick();\n }}\n data-testid={isVideoEnabled ? 'mute_video_participant_btn' : 'unmute_video_participant_btn'}\n >\n {isVideoEnabled ? <VideoOnIcon /> : <VideoOffIcon />}\n <span>{isVideoEnabled ? 'Mute' : 'Request Unmute'}</span>\n </StyledMenuTile.ItemButton>\n ) : null}\n\n {toggleAudio ? (\n <StyledMenuTile.ItemButton\n css={spacingCSS}\n onClick={() => {\n toggleAudio();\n closeSheetOnClick();\n }}\n data-testid={isVideoEnabled ? 'mute_audio_participant_btn' : 'unmute_audio_participant_btn'}\n >\n {isAudioEnabled ? <MicOnIcon /> : <MicOffIcon />}\n <span>{isAudioEnabled ? 'Mute' : 'Request Unmute'}</span>\n </StyledMenuTile.ItemButton>\n ) : null}\n\n {audioTrackID ? (\n <StyledMenuTile.VolumeItem data-testid=\"participant_volume_slider\" css={{ ...spacingCSS, mb: '$0' }}>\n <Flex align=\"center\" gap={1}>\n <SpeakerIcon />\n <Box as=\"span\" css={{ ml: '$4' }}>\n Volume ({volume})\n </Box>\n </Flex>\n <Slider css={{ my: '0.5rem' }} step={5} value={[volume]} onValueChange={e => setVolume(e[0])} />\n </StyledMenuTile.VolumeItem>\n ) : null}\n\n {showPinAction && (\n <>\n <PinActions audioTrackID={audioTrackID} videoTrackID={videoTrackID} />\n {showSpotlight && <SpotlightActions peerId={peerID} onSpotLightClick={() => closeSheetOnClick()} />}\n </>\n )}\n\n <SimulcastLayers trackId={videoTrackID} />\n\n {removeOthers ? (\n <StyledMenuTile.RemoveItem\n css={{ ...spacingCSS, borderTop: 'none' }}\n onClick={async () => {\n try {\n await actions.removePeer(peerID, '');\n } catch (error) {\n // TODO: Toast here\n }\n closeSheetOnClick();\n }}\n data-testid=\"remove_participant_btn\"\n >\n <RemoveUserIcon />\n <span>Remove Participant</span>\n </StyledMenuTile.RemoveItem>\n ) : null}\n\n {removeOthers && isScreenshare ? (\n <StyledMenuTile.RemoveItem\n onClick={() => {\n sendEvent({});\n closeSheetOnClick();\n }}\n css={spacingCSS}\n >\n <ShareScreenIcon />\n <span>Stop Screenshare</span>\n </StyledMenuTile.RemoveItem>\n ) : null}\n </>\n );\n};\n", "const PEER_NAME_PLACEHOLDER = 'peerName';\nconst labelMap = new Map([\n [[true, 'screen'].toString(), 'Your Screen'],\n [[true, 'regular'].toString(), `You (${PEER_NAME_PLACEHOLDER})`],\n [[false, 'screen'].toString(), `${PEER_NAME_PLACEHOLDER}'s Screen`],\n [[false, 'regular'].toString(), PEER_NAME_PLACEHOLDER],\n [[true, undefined].toString(), `You (${PEER_NAME_PLACEHOLDER})`],\n [[false, undefined].toString(), `${PEER_NAME_PLACEHOLDER}`],\n]);\n\nexport const getVideoTileLabel = ({ peerName, isLocal, track }) => {\n const isPeerPresent = peerName !== undefined;\n if (!isPeerPresent || !track) {\n // for peers with only audio track\n return isPeerPresent ? labelMap.get([isLocal, undefined].toString()).replace(PEER_NAME_PLACEHOLDER, peerName) : '';\n }\n const isLocallyMuted = track.volume === 0;\n // Map [isLocal, videoSource] to the label to be displayed.\n let label = labelMap.get([isLocal, track.source].toString());\n if (label) {\n label = label.replace(PEER_NAME_PLACEHOLDER, peerName);\n } else {\n label = `${peerName} ${track.source}`;\n }\n label = `${label}${track.degraded ? '(Degraded)' : ''}`;\n return `${label}${isLocallyMuted ? ' (Muted for you)' : ''}`;\n};\n", "import { selectAppDataByPath, useHMSStore } from '@100mslive/react-sdk';\nimport { APP_DATA } from '../../common/constants';\n\nexport const useAppConfig = (...path) => {\n const appConfig = useHMSStore(selectAppDataByPath(APP_DATA.appConfig, ...path));\n return appConfig;\n};\n", "import React, { Fragment, useEffect, useState } from 'react';\nimport { useVideoList } from '@100mslive/react-sdk';\nimport { useTheme } from '../../Theme';\nimport { StyledVideoList } from '../../VideoList';\nimport { Pagination } from './Pagination';\nimport ScreenshareTile from './ScreenshareTile';\nimport VideoTile from './VideoTile';\nimport { useAppConfig } from './AppData/useAppConfig';\nimport { useIsHeadless } from './AppData/useUISettings';\n\nconst List = ({ maxTileCount, peers, maxColCount, maxRowCount, includeScreenShareForPeer }) => {\n const { aspectRatio } = useTheme();\n const tileOffset = useAppConfig('headlessConfig', 'tileOffset');\n const isHeadless = useIsHeadless();\n\n const { ref, pagesWithTiles } = useVideoList({\n peers,\n maxTileCount,\n maxColCount,\n maxRowCount,\n includeScreenShareForPeer,\n aspectRatio,\n offsetY: getOffset({ isHeadless, tileOffset }),\n });\n const [page, setPage] = useState(0);\n useEffect(() => {\n // currentPageIndex should not exceed pages length\n if (page >= pagesWithTiles.length) {\n setPage(0);\n }\n }, [pagesWithTiles.length, page]);\n return (\n <StyledVideoList.Root ref={ref}>\n <StyledVideoList.Container css={{ flexWrap: 'wrap', placeContent: 'center' }}>\n {pagesWithTiles && pagesWithTiles.length > 0\n ? pagesWithTiles[page]?.map(tile => {\n if (tile.width === 0 || tile.height === 0) {\n return null;\n }\n return (\n <Fragment key={tile.track?.id || tile.peer.id}>\n {tile.track?.source === 'screen' ? (\n <ScreenshareTile width={tile.width} height={tile.height} peerId={tile.peer.id} />\n ) : (\n <VideoTile\n width={tile.width}\n height={tile.height}\n peerId={tile.peer?.id}\n trackId={tile.track?.id}\n />\n )}\n </Fragment>\n );\n })\n : null}\n </StyledVideoList.Container>\n {!isHeadless && pagesWithTiles.length > 1 ? (\n <Pagination page={page} onPageChange={setPage} numPages={pagesWithTiles.length} />\n ) : null}\n </StyledVideoList.Root>\n );\n};\n\nconst VideoList = React.memo(List);\n\nconst getOffset = ({ tileOffset, isHeadless }) => {\n if (!isHeadless || isNaN(Number(tileOffset))) {\n return 32;\n }\n return Number(tileOffset);\n};\n\nexport default VideoList;\n", "import React from 'react';\nimport { ChevronLeftIcon, ChevronRightIcon } from '@100mslive/react-icons';\nimport { StyledPagination } from '../../Pagination';\n\nexport const Pagination = ({ page, onPageChange, numPages }) => {\n const disableLeft = page === 0;\n const disableRight = page === numPages - 1;\n const nextPage = () => {\n onPageChange(Math.min(page + 1, numPages - 1));\n };\n const prevPage = () => {\n onPageChange(Math.max(page - 1, 0));\n };\n return (\n <StyledPagination.Root>\n <StyledPagination.Chevron disabled={disableLeft} onClick={prevPage}>\n <ChevronLeftIcon width={16} height={16} style={{ cursor: disableLeft ? 'not-allowed' : 'pointer' }} />\n </StyledPagination.Chevron>\n <StyledPagination.Dots>\n {[...Array(numPages)].map((_, i) => (\n <StyledPagination.Dot key={i} active={page === i} onClick={() => onPageChange(i)} />\n ))}\n </StyledPagination.Dots>\n <StyledPagination.Chevron disabled={disableRight} onClick={nextPage}>\n <ChevronRightIcon width={16} height={16} style={{ cursor: disableRight ? 'not-allowed' : 'pointer' }} />\n </StyledPagination.Chevron>\n </StyledPagination.Root>\n );\n};\n", "import React, { useRef, useState } from 'react';\nimport { useFullscreen } from 'react-use';\nimport screenfull from 'screenfull';\nimport {\n selectLocalPeerID,\n selectPeerByID,\n selectScreenShareAudioByPeerID,\n selectScreenShareByPeerID,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport { ExpandIcon, ShrinkIcon } from '@100mslive/react-icons';\nimport TileMenu from './TileMenu/TileMenu';\nimport { VideoTileStats } from '../../Stats';\nimport { Video } from '../../Video';\nimport { StyledVideoTile } from '../../VideoTile';\nimport { getVideoTileLabel } from './peerTileUtils';\nimport { useIsHeadless, useUISettings } from './AppData/useUISettings';\nimport { UI_SETTINGS } from '../common/constants';\n\nconst labelStyles = {\n position: 'unset',\n width: '100%',\n textAlign: 'center',\n transform: 'none',\n mt: '$2',\n flexShrink: 0,\n};\n\nconst Tile = ({ peerId, width = '100%', height = '100%' }) => {\n const isLocal = useHMSStore(selectLocalPeerID) === peerId;\n const track = useHMSStore(selectScreenShareByPeerID(peerId));\n const peer = useHMSStore(selectPeerByID(peerId));\n const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);\n const isHeadless = useIsHeadless();\n const [isMouseHovered, setIsMouseHovered] = useState(false);\n const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);\n const label = getVideoTileLabel({\n peerName: peer.name,\n isLocal: false,\n track,\n });\n const fullscreenRef = useRef(null);\n // fullscreen is for desired state\n const [fullscreen, setFullscreen] = useState(false);\n // isFullscreen is for true state\n const isFullscreen = useFullscreen(fullscreenRef, fullscreen, {\n onClose: () => setFullscreen(false),\n });\n const isFullScreenSupported = screenfull.isEnabled;\n const audioTrack = useHMSStore(selectScreenShareAudioByPeerID(peer?.id));\n return (\n <StyledVideoTile.Root css={{ width, height, p: 0 }} data-testid=\"screenshare_tile\">\n {peer ? (\n <StyledVideoTile.Container\n transparentBg\n ref={fullscreenRef}\n css={{ flexDirection: 'column' }}\n onMouseEnter={() => setIsMouseHovered(true)}\n onMouseLeave={() => {\n setIsMouseHovered(false);\n }}\n >\n {showStatsOnTiles ? (\n <VideoTileStats audioTrackID={audioTrack?.id} videoTrackID={track?.id} peerID={peerId} isLocal={isLocal} />\n ) : null}\n {isFullScreenSupported && !isHeadless ? (\n <StyledVideoTile.FullScreenButton onClick={() => setFullscreen(!fullscreen)}>\n {isFullscreen ? <ShrinkIcon /> : <ExpandIcon />}\n </StyledVideoTile.FullScreenButton>\n ) : null}\n {track ? (\n <Video\n screenShare={true}\n mirror={peer.isLocal && track?.source === 'regular'}\n attach={!isAudioOnly}\n trackId={track.id}\n />\n ) : null}\n <StyledVideoTile.Info css={labelStyles}>{label}</StyledVideoTile.Info>\n {isMouseHovered && !isHeadless && !peer?.isLocal ? (\n <TileMenu isScreenshare peerID={peer?.id} audioTrackID={audioTrack?.id} videoTrackID={track?.id} />\n ) : null}\n </StyledVideoTile.Container>\n ) : null}\n </StyledVideoTile.Root>\n );\n};\n\nconst ScreenshareTile = React.memo(Tile);\n\nexport default ScreenshareTile;\n"],
|
5
|
-
"mappings": "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",
|
6
|
-
"names": ["React", "Fragment", "useState", "useMedia", "selectLocalPeerID", "selectVideoTrackByPeerID", "useHMSStore", "MicOffIcon", "React", "useState", "useMedia", "selectPermissions", "selectTrackByID", "useHMSStore", "useRemoteAVToggle", "CrossIcon", "React", "React", "React", "useHMSActions", "useHMSStore", "useHMSActions", "useHMSStore", "React", "useState", "useHMSStore", "selectPermissions", "useRemoteAVToggle", "selectTrackByID", "useMedia", "React", "CrossIcon", "useHMSStore", "useHMSStore", "selectVideoTrackByPeerID", "useHMSStore", "selectLocalPeerID", "useState", "useMedia", "React", "MicOffIcon", "Fragment", "React", "Fragment", "useState", "React", "ChevronLeftIcon", "React", "ChevronLeftIcon", "React", "useState", "selectLocalPeerID", "selectPeerByID", "useHMSStore", "ShrinkIcon", "Tile", "useHMSStore", "selectLocalPeerID", "selectPeerByID", "useState", "React", "ShrinkIcon", "useState", "React", "_a", "Fragment"]
|
7
|
-
}
|