Merge pull request #2416 from robintown/grid-spotlight-speaker
Show speaker in the spotlight in large grids
This commit is contained in:
@@ -75,6 +75,13 @@ import { duplicateTiles } from "../settings/settings";
|
||||
// list again
|
||||
const POST_FOCUS_PARTICIPANT_UPDATE_DELAY_MS = 3000;
|
||||
|
||||
// This is the number of participants that we think constitutes a "large" grid.
|
||||
// The hypothesis is that, after this many participants there's enough cognitive
|
||||
// load that it makes sense to show the speaker in an easy-to-locate spotlight
|
||||
// tile. We might change this to a scroll-based condition or do something else
|
||||
// entirely with the spotlight tile, if we workshop this further.
|
||||
const largeGridThreshold = 20;
|
||||
|
||||
// Represents something that should get a tile on the layout,
|
||||
// ie. a user's video feed or a screen share feed.
|
||||
// TODO: This exposes too much information to the view layer, let's keep this
|
||||
@@ -541,7 +548,10 @@ export class CallViewModel extends ViewModel {
|
||||
(grid, spotlight, screenShares): Layout => ({
|
||||
type: "grid",
|
||||
spotlight:
|
||||
screenShares.length > 0 ? spotlight : undefined,
|
||||
screenShares.length > 0 ||
|
||||
grid.length > largeGridThreshold
|
||||
? spotlight
|
||||
: undefined,
|
||||
grid,
|
||||
}),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user