Commit Graph

2567 Commits

Author SHA1 Message Date
damencho
e82ef6de4b feat(tests): Uses memory logs on failure and stops logging during conference. 2025-10-22 15:58:12 -05:00
Hannes
b2f7b3be6c fix(chat): don't show private chat picker if disabled (#16556)
* fix: 🐛 don't show private chat picker if disabled

* style: 🚨

* refactor: ♻️ combine function
2025-10-21 07:57:55 -05:00
Jaya Allamsetty
82d4628976 fix(large-video)pin prev speaker on stage when local user is dominant speaker. (#16511)
* fix(large-video)pin prev speaker on stage when local user is dominant speaker.
Also fix the case where the dominant speaker sometimes doesn't show up in the filmstrip when SS is pinned to stage.

* fix(test) Add more tests for activeSpeaker

* fix(test) Do not check for large-video if there is no remote video track.

* fix(filmstrip) Get updated display name for calc speaker order
2025-10-16 15:35:15 -04:00
Mihaela Dumitru
641b52c51d feat(visitors): add showJoinMeetingDialog config option (#16540) 2025-10-14 19:36:36 +03:00
Mihaela Dumitru
683d6eb208 feat(visitors): add hideVisitorCountForVisitors config option (#16541) 2025-10-14 17:06:14 +03:00
Hristo Terezov
a62fa3f833 feat(chat): Display file uploads as inline chat messages
Integrates file sharing into the chat interface so uploaded files appear as messages in the chat timeline alongside text
messages.

Changes:
- Created FileMessage component for inline file display in chat
- Extracted FileItem component for reusable file UI across chat and file sharing tab
- Show "A file was deleted" placeholder instead of removing message when file deleted
- Hide message menu (3-dot) when no actions are available for file messages
- Add button backgrounds in chat context to hide text on hover
- Fix timing: local participant only sees file message after upload completes (progress: 100%)

Technical implementation:
- Added fileMetadata field to IMessage interface
- Added isDeleted flag to IFileMetadata for soft-delete state
- Middleware dispatches addMessage when files uploaded (ADD_FILE action)
- Middleware uses editMessage when files deleted to preserve chat history
- Minimal state retention (only isDeleted flag) for deleted files

This provides a unified messaging experience where file sharing is part of the conversation flow.
2025-10-14 08:45:51 -05:00
Mihaela Dumitru
95ecf73c71 feat(prejoin): add showHangUp config option to prejoinConfig (#16531) 2025-10-13 10:46:04 +03:00
bgrozev
ecec65f7af feat: Whitelist the disableFocus config option. (#16526) 2025-10-09 14:58:03 -05:00
bgrozev
447be3f6a9 Reorganize tests by feature, minor test updates (#16518)
* test: Move lockRoom under moderation/.

* ref: Cleanup lockRoom test.

* test: Move lockRoomDigitsOnly to ui/.

* test: Add a setPasswordAvailable expectation.

* ref: Move the lobby test to moderation/.

* test: Move tests to media/.

* test: Add a useTenant expectation.

* test: Move mute to media/.

* test: Move audioOnly to media/.

* test: Move startMuted to media/.

* test: Move codecSelection to media/.

* ref: Simplify, log the "actual" codec value.

* test: Move stopVideo to media/.

* test: Move videoLayout to ui/.

* test: Move chatPanel to ui/.

* test: Move switchVideo to media/pinning.spec.ts.

* test: Move audioVideoModeration to media/.

* test: Move displayName to ui/.

* test: Move preJoin to ui/.

* test: Move endConference to ui/.

* test: Move selfView to ui/.

* test: Move oneOnOne to ui/.

* test: Move tileView to ui/.

* test: Move singlePort and udp to misc/connectivity.spec.ts.

* test: Move avatars to misc/.

* test: Move polls to misc/.

* test: Move breakoutRooms to misc/.

* test: Move followMe to misc/.

* test: Move invite to dial/dialInUi.spec.ts.

* test: Move dialInAudio to dial/dialIn.spec.ts.

* test: Only log expectations in the main wdio process.

* test: Move fakeDialInAudio to dial/.

* test: Move subject to misc/.

* test: Check for subject set remotely.

* test: Remove references to "2way", "3way".

* test: Consolidate all dial-in tests in one file.

* test: Move dialIn to misc/.

* test: Adjust test titles.

* Remove waitForAudioFromDialInParticipant test.
2025-10-09 14:11:20 -05:00
Calinteodor
38677dbe0a dep(react-native-immersive-mode): remove everything related to this (#16513)
* Remove anything related to immersive mode on Android. Right now we use top and bottom insets.
2025-10-07 13:50:39 +03:00
Mihaela Dumitru
9d2f1ce8e0 fix(ui): improve tab badge styling (#16507) 2025-10-06 13:40:41 +03:00
damencho
19cff49ab1 feat(conference): Adds option to silently reconnect.
Uses the end_meeting endpoint to trigger a silent reconnect by destroying the current conference and passing its jid.
2025-10-03 14:58:56 -05:00
damencho
a93ca9d7c4 fix(conference): Fixes showing max users notification. 2025-09-30 16:59:47 -05:00
damencho
c5f82d4f20 fix(follow-me): Moves follow-me state to its feature. 2025-09-30 07:02:11 -05:00
Дамян Минков
e6fbeb9458 feat(conference): Process unauthenticated access disabled error. (#16465)
* feat(conference): Process unauthenticated access disabled error.

Shows notification with a button to login.

* squash: Fix texts.

* feat(visitors): Propagate and use allowUnauthenticatedAccess.

* squash: Avoids always sending a value, even when not set.

* squash: Rename error.

* squash: Fix comments.

* squash: Move check before log.
2025-09-26 14:05:19 -05:00
Дамян Минков
469406d7cd feat(polls): Move polls to using a component (#16406)
* squash: Renames module.

* squash: Loads polls component.

* squash: Attach needed logic when components/hosts load.

* squash: Moves to use component.

* squash: Uses json-message format with types.

* squash: Checks for polls support.

* squash: Fixes comments and moves validate polls to backend.

* squash: Fix debian build.

* fix(polls): Fixes polls in breakout rooms.

* squash: Further simplify types.

Separate type that needs to go into ljm and those used only for the UI part.
Simplify answer/voter type to be unified across operations which simplifies and its logic.

* squash: Change voters structure to be {id, name}.

* squash: Update react/features/conference/functions.any.ts

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>

* squash: Drops roomJid from messages. Uses the connection information as breakout does.

---------

Co-authored-by: Saúl Ibarra Corretgé <saghul@jitsi.org>
2025-09-25 16:46:06 -05:00
Calin-Teodor
40b8d6168b feat(base/flags): add warning for unsupported feature flags 2025-09-25 16:21:56 +03:00
damencho
086f01aa5b fix(i18n): Uses language-variant for translations.
This way we can take advantage of internal i18next mechanism for fallback from en-US to en and from es-ES to es and so on.
2025-09-24 08:31:22 -05:00
Mihaela Dumitru
6b6920693b feat(lobby) integrate login in lobby + configs (#16401)
* feat(lobby) integrate login in lobby + configs

* fixed toolboxContainer styles, used HangupButton

* make hangup button visible by default

* use hangup button

* feat(prejoin): fixed indent, import extension

* squash: Restore back wait for owner dialog.

* squash: Drops not used state and functions.

---------

Co-authored-by: Calin-Teodor <calin.chitu@8x8.com>
Co-authored-by: damencho <damencho@jitsi.org>
2025-09-22 16:56:29 +03:00
damencho
f5668b6e8b feat(visitors): Retries as a visitor when max occupants reached. 2025-09-18 14:29:55 -05:00
Jaya Allamsetty
8f0b9575c4 ref(logging) Rename logger ids to facilitate proper filtering of logs. 2025-09-16 22:45:59 -04:00
Jaya Allamsetty
ce19e6d40b fix(logging) Update the logger ids for default log levels 2025-09-16 12:32:19 -05:00
Mihaela Dumitru
58db02bab8 feat(visitor) confirm raised hand sent to mods (#16388) 2025-09-09 16:19:39 +03:00
Calinteodor
abc1f3d33b dep(react-native-worklets-core): Replace duktape to align with Android 16kb page size alignment (#16393)
* Replaced duktape lib with react-native-worklets-core and checked for compatibility with Android 16kb page-size requirement.
2025-09-09 12:46:11 +03:00
Hugo Lavernhe
1e15d9421b feat(settings) Add advanced audio settings checkboxes (#16316)
* Add checkboxes to toggle audio settings

* Sync checkboxes with audio mixer effect

* Add tooltips

* Move previewAudioTrack to redux

* Add translation

* Add audio settings state to redux

* Update docs

* Apply review comments

* Create local track with audio contraints when unmuting

* Refactor functions and naming

* Add enableAdvancedAudioSettings config

* Fix mobile imports

* Add tooltips content

* Update react/features/base/config/functions.any.ts

* Layout checkboxes in a two-column grid

* Fix web imports

* Sort translation alphabetically

* Separate audio mute implementation for mobile and web

* Apply review comments

* squash: Add imports for middleware.any

* squash: fix linter errors

* Remove tooltips

* Lint

* Refactored setting of audio constraints in createLocalTracksF with checks for feature flag and desktop

---------

Co-authored-by: Jaya Allamsetty <54324652+jallamsetty1@users.noreply.github.com>
Co-authored-by: Jaya Allamsetty <jaya.allamsetty@8x8.com>
2025-09-05 16:52:35 -04:00
damencho
d15cfd845a fix(config): Drops legacy config prejoinPageEnabled. 2025-08-19 08:41:04 -05:00
Calin-Teodor
142d4441c1 feat(chat): add tooltip for each chat screen tab 2025-08-18 16:33:15 +03:00
Saúl Ibarra Corretgé
000c370c64 fix(prejoin) no initial tracks when using URL override to disable it
It's still possible to disable it, but when not in an iframe, audio and
video tracks will not be created.

When in an iframe, it's ok to let it happen, since the host sit is the
one where permissions need to be granted, thanks to permission
delegation.

Fixes: https://github.com/jitsi/jitsi-meet/issues/16262
Ref: https://zimzi.substack.com/p/jitsi-privacy-flaw-that-enables-one
2025-08-08 23:06:01 +02:00
raduanastase8x8
d2e52d2c2a ref(Theme): Changes typography values to rem (#16021)
Replaces hard-coded pixel values with relative rem units across UI components to improve typography responsiveness and maintainability.

Co-authored-by: Hristo Terezov <hristo@jitsi.org>
2025-08-06 19:07:27 -05:00
Horatiu Muresan
79dbc2d1ee feat(chat-web) add chat recipient picker (#16298) 2025-08-05 10:06:04 +03:00
Hristo Terezov
cb621f8e32 feat(visitors): Private messages to main participants. 2025-07-25 17:26:06 -05:00
raduanastase8x8
52fa36f930 chore(wcag) Create valid structure for audio menu (#16007) 2025-07-24 19:40:50 +03:00
Horatiu Muresan
f16bf466eb feat(external-api) Add camera capture function (#16238) 2025-07-23 17:22:48 +03:00
damencho
3047b4c8c4 fix: Fixes updating local UI startMuted state. 2025-07-21 22:49:35 +03:00
Saúl Ibarra Corretgé
2305ae85a0 feat(av-moderation) implement screen-sharing moderation 2025-07-11 16:00:45 +02:00
Calinteodor
b511f4b8df dep(react-native): Update to 0.77.2 (#16160)
* This is a huge update, mostly because we updated Gradle on the Android side, which includes a more strict bundle process for third party modules. On iOS, even though new architecture is disabled, we had to be explicit about it because of this react native update and because some updated dependencies have it enabled by default and are using turbo modules which are not available, YET, in our project.
2025-07-10 14:56:43 +03:00
damencho
7a97d15e89 feat(conference): Clears any error from previous attempts.
When you see the error, you may click join on pre-join again, which may succeeded, so clear previous errors.
2025-07-09 14:14:49 +03:00
Saúl Ibarra Corretgé
a4367567ab fix(amplitude) adjust to new SDK API changes
Ref: https://amplitude.com/docs/sdks/analytics/browser/migrate-from-javascript-sdk-to-browser-sdk-2-0
2025-07-08 17:40:46 +02:00
Saúl Ibarra Corretgé
6141ff78f8 fix(rn,embed) remove 8x8 apps from isEmbedded check
For all intents and purposes 8x8 apps are integrating the SDK as a 3rd
party.

Yes, we are a 1st party of sorts, but that's ok because 8x8.vc allows
embedding.
2025-07-04 15:31:14 +02:00
Andrei Gavrilescu
3438438219 feat(recording): enable consent dialog on spot (#16179)
* enable consent dialog on spot

* lint fix

* move spot consent behind config flag

* revert copilot magic
2025-07-04 11:45:01 +03:00
Hristo Terezov
877fc98eef feat(visitors-list): Add to participant pane. 2025-07-03 07:52:09 -05:00
Saúl Ibarra Corretgé
f28bd67ff4 fix(PressureObserver) adapt to API changes
Also set a sampling intervakl of 30s to avoid too chatty logs.
2025-07-01 16:47:15 +02:00
Horatiu Muresan
3a54c3418b feat(filmstrip) Add always visible resize bar and initial width (#16181) 2025-07-01 16:07:47 +03:00
Avram Tudor
4decb41a1e feat: allow private chats between users and moderators (#16165)
* fix context menu of a chat bubble containing the private message entry when private chat should be disabled
2025-06-26 14:43:54 +03:00
Calin-Teodor
2aaf0ed543 feat(base/config): remove customToolbarButtons warning 2025-06-19 13:05:34 +03:00
damencho
e5187de9c3 feat(file-sharing): Uses a filesharing management from ljm.
squash: Change the way we pass the list of files from the backend.

squash: Remove actions to sync local state with remote.
2025-06-17 15:51:41 -05:00
Дамян Минков
494afde82a fix(config): Moves a property to dynamic branding. (#16138)
* fix(config): Moves a property to dynamic branding.

* squash: Remove unused.
2025-06-13 11:24:27 -05:00
Jaya Allamsetty
51ba5d31aa fix(tracks) Log when the MediaStream becomes 'inactive' 2025-06-12 13:57:54 -04:00
Дамян Минков
5f88b117ae fix(visitors): Fixes visitors count. (#16134)
* fix(visitors): Fixes visitors count.

* squash: Simplify logic with new function counting participants to display.
2025-06-11 12:51:33 -05:00
damencho
4500a5aba5 fix(conference): Handles promise rejection on conference failed.
For example when lobby is enabled.
2025-06-10 16:38:57 -05:00