Skip to content

Commit e4ef640

Browse files
committed
Add a .player-drag-handle
The video elements can only be moved via the handle, not the entire player
1 parent e72d27d commit e4ef640

2 files changed

Lines changed: 24 additions & 8 deletions

File tree

web/src/components/player/Player.tsx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,13 @@ const Player = (props: PlayerProps) => {
242242
<div
243243
onClick={stopOverlayClickPropagation}
244244
onDoubleClick={stopOverlayClickPropagation}
245-
className="bg-blue-950 w-full flex flex-row gap-2 h-1/14 p-1 max-h-8 min-h-8 rounded-md">
245+
className="player-drag-handle bg-blue-950 w-full flex flex-row gap-2 h-1/14 p-1 max-h-8 min-h-8 rounded-md cursor-move">
246246

247-
<PlayPauseComponent videoRef={videoRef} />
247+
<span className="player-drag-cancel flex h-full items-center cursor-pointer">
248+
<PlayPauseComponent videoRef={videoRef} />
249+
</span>
248250

251+
<span className="player-drag-cancel flex h-full items-center cursor-pointer">
249252
<VolumeComponent
250253
isMuted={videoElement.muted}
251254
isDisabled={audioLayers.length === 0}
@@ -260,16 +263,25 @@ const Player = (props: PlayerProps) => {
260263
}
261264
}}
262265
/>
266+
</span>
263267

264268
<div className="w-full pointer-events-none"></div>
265269

266-
<CurrentViewersComponent currentViewersCount={currentStreamStatus?.viewers ?? 0} />
270+
<span className="player-drag-cancel flex h-full items-center cursor-default">
271+
<CurrentViewersComponent currentViewersCount={currentStreamStatus?.viewers ?? 0} />
272+
</span>
273+
<span className="player-drag-cancel flex h-full items-center cursor-pointer">
267274
<VideoLayerSelectorComponent layers={videoLayers} layerEndpoint={layerEndpoint} hasPacketLoss={false} currentLayer={currentLayersStatus?.videoLayerCurrent ?? ""} />
268-
{audioLayers.length > 1 && (
275+
</span>
276+
277+
{audioLayers.length > 1 && (
278+
<span className="player-drag-cancel flex h-full items-center cursor-pointer">
269279
<AudioLayerSelectorComponent layers={audioLayers} layerEndpoint={layerEndpoint} hasPacketLoss={false} currentLayer={currentLayersStatus?.videoLayerCurrent ?? ""} />
270-
)}
271-
<Square2StackIcon onClick={() => videoElement?.requestPictureInPicture()} />
272-
<ArrowsPointingOutIcon onClick={handleEnterFullscreen} />
280+
</span>
281+
)}
282+
283+
<Square2StackIcon className="player-drag-cancel cursor-pointer" onClick={() => videoElement?.requestPictureInPicture()} />
284+
<ArrowsPointingOutIcon className="player-drag-cancel cursor-pointer" onClick={handleEnterFullscreen} />
273285
</div>
274286
</div>)
275287
}

web/src/components/player/PlayerPage.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,11 @@ const PlayerPage = () => {
139139
<div className={`flex flex-col w-full items-center ${!cinemaMode && "mx-auto px-2 py-2 container"}`} >
140140
<div ref={playerGridRef} className="w-full">
141141
<ReactGridLayout
142-
dragConfig={{ enabled: !isMobilePlayer }}
142+
dragConfig={{
143+
enabled: !isMobilePlayer,
144+
handle: ".player-drag-handle",
145+
cancel: ".player-drag-cancel,button,input,select,textarea,a,[role='button']",
146+
}}
143147
resizeConfig={{ enabled: !isMobilePlayer }}
144148
layout={streamKeys.map((streamKey, index) => ({
145149
i: `${streamKey}_player_card`,

0 commit comments

Comments
 (0)