* 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
* feat(layout/observer): Add user preference for dark theme in `LayoutObserver` component.
* feat(docs/administration): Add support for default dark theme preference parameter
* refactor(settings): Remove dark theme setting from LayoutObserver and move it to Settings class.
Refactor styles to update the background color of connection status bars in dark mode. The #connectionBars > div now has a background color of var(--darkreader-neutral-text)
This commit refactors the label generation for audio captions in the audio-captions button and captions components. Instead of directly using the intl formatMessage function, the label is now generated using the intlMessages object and the getLocaleName function from the audio-captions service. This change prevents an issue with custom locales.
* fix: Custom styles not applying to loading screen
* fix: Apply custom styles before rendering children
* fix: Use Object.assign instead of spread syntax
* fix: Add cleanup function to clear the timeout and abort the fetch
* fix: Clear the timeout if the fetch completes successfully
* refactor: Remove unused queries file
Fixes race condition happening when multiple plugins that add extensible
area elements are loaded by the client. The issue is caused by the state
update of the extensible area items set by plugins, based on previous
state without using a callback. Replaced direct state updates with the
appropriate callback pattern to ensure consistent state changes.