Introduces a new layout type called `MEDIA_ONLY`, which shows only media
elements(presentation area and cameras). This layout follows the same
heuristics used by the smart layout to arrange presentation and cameras
in the screen.
Fixes an issue with the camera dock bounds calculation, where the banner
height was being accounted for twice, leading to incorrect dock height
and excessive spacing. The height is now correctly based on the media
are height, which already factors in the banner height.
Additionally, the top position of the camera dock is now calculated
using the media area's top position, correctly factoring in the margin of
the media area.
Adds an optional parameter to the `calculateMediaAreaBounds` function,
allowing a margin to be specified when determining the media area
bounds. Any usage of the function without the optional parameter will
default to the previous behavior(no margin).
This commit introduces a mapping between each layout type and the structures
it should propagate or replicate. This change enhances the clarity of the
implemented behavior for each layout type and simplifies modifications to the
elements propagated for each layout.
Additionally, the push layout engine has been updated to utilize the new
mapping structure.
The focused camera id is of type string and was set to boolean `false`
when a camera was unfocused, causing it to throw an error on apollo and
consequently not propagating the focused camera status. This commit fixes
this issue by setting the focused camera id to its initial string value `none`
when a camera is unfocused.
* Fix: Restore keyboard navigation on userlist
* Add: restore function
* Fix: Add support to arrow down and space to enter navigation area
* Fix: Wrong page size calculation
* Change: Add a new console class that allow us show extra info passed to log
* detailed logs: use env var + enable by default on development
* remove duplicated code
* Prevent negative array length when padding level name + Simplify condition using optional chaining
---------
Co-authored-by: Ramón Souza <contato@ramonsouza.com>
* feat(chat): improve messages rendering
This commit adds memoization and comparsion functions to the chat pages
and chat messages to prevent whole chat re-renders and unnecessary
message re-renders caused by React's default shallow comparsion mechanism.
The comparsion functions ensure that only the pertinent message attributes
trigger a component's re-render.
Messages sent by a user are not updated (re-rendered) when their role
change. In other words, the chat messages reflect the user's role at the
time the message was sent. Altering the message to reflect the user's
current role could confuse participants, as it would modify the context
of the past conversation. This behavior has been validated by the UI/UX
team and brings benefits such as performance improvements and consistent
behavior with how playback handles such messages.
* fix linter errors
Add fields:
contentType: to identify whether is camera or screenshare
hasAudio: useful for screenshare
focused: indicates if this screenshare will be shown in presentation area