Commit Graph

5568 Commits

Author SHA1 Message Date
Rajvardhan Singh Rathore
cff9b3b157 fix: added missing aria-labels to toolbar buttons for accessibility 2026-02-26 17:53:48 -06:00
damencho
a6422882dd fix(authentication): Drops not needed tokenAuthUrlAutoRedirect. 2026-02-25 16:42:54 -06:00
mishraditi
e9848f6438 fix(recording): show advanced options in several corner cases
* fix(recording): show advanced options for local recording with transcription

* Fixed edge case when all recording service are disabled

* Modified css

* Added warning message

* Show transcription option when no recording service is present

* Addressed PR reviews

* squash: Hide recording advanced option when not rendering recording.

* squash: Show recording button when only transcriptions are enabled.

* squash: Make sure we do not call record when it is not rendered due to no permissions.

* squash: Allows those with just feature transcription to use async transcribe.

* squash: Show recording stop button when recording is running when only transcriptions feature is available.

---------

Co-authored-by: damencho <damencho@jitsi.org>
2026-02-25 16:42:41 -06:00
yash1927
5c7f7d5d1e refactor(webhid-manager): use COMMANDS.OFF_HOLD constant instead of hardcoded string 2026-02-25 16:41:33 -06:00
damencho
9d6c38590c fix(chat): Clear all state when changing room.
Some state may be left when switching to breakout room.
2026-02-25 14:05:57 -06:00
damencho
42c2398345 fix(transcriptions): Fixes showing premium options dialog from chat panel.
This is jaas related.
2026-02-25 14:05:47 -06:00
damencho
bcc1a3ec72 fix(breakout): Hides unsupported services in breakout rooms. 2026-02-25 14:05:24 -06:00
Nishant kumar
c3c42b477b feat(transcription): allow custom transcriber languages via config (#16984)
* feat(transcription): allow custom transcriber languages via config

* fix(transcription): avoid duplicating default language json and document config

* feat(config): add support for custom transcription languages in configuration

* fix(config): satisfy lint and ts rules
2026-02-25 10:34:47 -06:00
yash1927
35539c0772 fix(local-recording): close AudioContext on recording stop
fix(local-recording): close AudioContext on recording stop
2026-02-25 08:08:04 -06:00
Bandhan Majumder
e1296fd82f fix(toolbox): enabledInJwt check for isDesktopShareButtonDisabled in native (#16997) 2026-02-24 11:36:13 -06:00
Calinteodor
5c92faccf6 feat(filmstrip): move AudioTracksContainer outside (#17000)
* Move AudioTracksContainer outside of filmstrip feature.
2026-02-24 16:55:09 +02:00
damencho
c00b1c8145 fix(authentication): Skip prejoin in some case when not inline. 2026-02-24 07:40:41 -06:00
damencho
c5c7983675 fix(authentication): Fixes loading jwt middleware.
In 96d02e8 a middleware.web was introduced which broke loading the original one.
2026-02-23 18:14:28 -06:00
Jaya Allamsetty
a461e867d5 fix(video-layout) Fixes auto-pinning of SS in large calls. (#16992)
* fix(video-layout) Fixes auto-pinning of SS in large calls.
In calls with 50+ participants, isTopPanelEnabled returns true. This causes isStageFilmstripAvailable(state) (called with no minimum participant count from getPinnedParticipant) to return true even when activeParticipants is empty. When getPinnedParticipant takes that stage filmstrip path, it reads from activeParticipants.find(p => p.pinned) — which is always
  empty for an auto-pinned screenshare.
Added an explicit check in shouldDisplayTileView's auto-mode logic: when there are active screenshares AND the top panel is enabled AND auto-pin is active AND Follow Me isn't controlling the layout, exit tile view. The guards on getAutoPinSetting() and !isFollowMeActive(state) mirror the same conditions checked everywhere else before auto-pinning fires, ensuring
  consistent behavior.

* squash: Fixes linter error
2026-02-23 17:31:12 -05:00
Дамян Минков
96d02e8484 feat(authentication): Inline authentication for web
* fix(meeting_id): Depends on jitsi_session(uses session.user_region).

* feat(authentication): A static page that can be used with some auth providers like keycloak.

* fix(authentication): Implements inline authentication.

squash: Adds refresh token use when refresh token is needed on connection resuming.
squash: Fix bugs and move to PKCE flow.

* squash: Adds nonce verification.

* squash: Drops the closing logic.

* squash: Replace resuming event with CONNECTION_TOKEN_EXPIRED one.

* squash: Fixes comments.

* squash: Make sure we use tokenAuthUrl only when it is set and is not jaas.

* squash: Move CONNECTION_TOKEN_EXPIRED to web only middleware as it uses web only logic for now.

* squash: Fix comments.
2026-02-23 13:12:37 -06:00
solomon17705cs
244b5f9dd3 Fix: correct label binding in Advanced Options switches
Update the label's htmlFor and the Switch id from 'recording-switch-transcription' to 'recording-switch-audio-video' in StartRecordingDialogContent. This corrects the label-to-control association for the audio/video recording toggle, fixing an accessibility/mapping mismatch.
2026-02-23 13:05:26 -06:00
mishraditi
df0e55eda3 fix(settings): avoid activating all microphones when audio levels are disabled 2026-02-20 13:40:40 -06:00
Calinteodor
f7d64341f8 feat(lobby): Updates around toolbox menu and state (#16965)
* Remove hang up button from prejoin/lobby toolbox and reset lobby visibility state when access denied.
2026-02-20 11:13:42 +02:00
Jaya Allamsetty
156dd24b14 fix(filmstrip) Fixes an issue with ghost tiles appearing on the filmstrip.
This was a regression of the recent changes to filmstrip reordering.
2026-02-19 17:43:22 -05:00
Calinteodor
91481aa245 fix(lobby): use conferenceLeft instead of conferenceWilLeave
*Hang-up button is calling both appNavigate and conferenceWillLeave synchronously and something is interfering.
appNavigate is async and something is calling it again before conferenceWillLeave completes.
2026-02-19 13:59:54 +02:00
Mihaela Dumitru
3c85aa2350 fix(ui): add semantic tokens for svg fills and preview (#16962) 2026-02-18 20:11:04 +02:00
Mihaela Dumitru
5f11e2e9f4 fix(ui): more semantic tokens (#16955) 2026-02-18 10:43:39 +02:00
Calin-Teodor
45ee515b6b fix(base/ui): update welcome page navigation colors 2026-02-16 16:42:11 +02:00
Mihaela Dumitru
230559c493 fix(ui): hide input placeholder on focus (#16932) 2026-02-12 12:00:46 +02:00
RidaElmaaroufi
a06a338de5 fix: enable local recording when embedded in a same-domain iframe (#16900) 2026-02-11 12:08:35 +01:00
Дамян Минков
6e3c256905 feat(file-sharing): Adds tooltip to upload button. (#16924)
* feat(file-sharing): Adds tooltip to upload button.

* squash: Change message.
2026-02-10 09:24:19 -06:00
damencho
36a755776e feat(invite): Respects dial-in field from metadata. 2026-02-10 08:42:37 -06:00
Jaya Allamsetty
c88bfa1b9a fix(filmstrip) Excludes partially visible tiles for dominant speaker slot. 2026-02-09 17:59:27 -05:00
Mihaela Dumitru
b4cc466608 feat(files): add external api events for upload/delete (#16908) 2026-02-09 14:10:42 +02:00
Jaya Allamsetty
bde8dca825 fix(filmstrip) Ensures dominant speaker is always visible in filmstrip (#16901)
* fix(filmstrip) Ensures dominant speaker is always visible in filmstrip
2026-02-06 14:29:32 -05:00
Hristo Terezov
2ab86cffb8 feat(draggable-panels): Enable touch-screen support
Adds touch-screen support for resizing filmstrip and chat panels to enable tablet and touch-laptop users to adjust panel widths. Previously, drag handles only worked with mouse hover, making panels non-resizable on touch devices.

Changes:
- Implement Pointer Events API for unified mouse/touch handling
- Add touch device detection with screen size threshold
- Make drag handles always visible on touch devices with padding for easier tapping
- Maintain identical visual layout between touch and non-touch versions

Touch devices with sufficiently large screens now have fully functional drag handles with appropriate hit targets while smaller devices remain disabled to preserve mobile UX.
2026-02-06 09:48:44 -06:00
Mihaela Dumitru
9ea9f4c899 [WIP] feat(ui) add semantic tokens (#16772) 2026-02-06 15:06:54 +02:00
Mihaela Dumitru
28c72bfa7f fix(toolbar): remove hang up from prejoin app 2026-02-06 12:48:29 +01:00
Hristo Terezov
3d53f2e4c5 fix(PiP): Mac OS minimize not working
When we minimize the meeting window on Mac OS via the yellow button, 2 requests for PiP are triggered one after another because of the blur and the visibilitychange handlers. If we implement in Electron to focus the meeting window on the pipLeft event this will lead to the first request to exit triggering the pipLeft event after the second request is triggered which will actually bring the window back because we focus on pipLeft event. This behaviour breaks the ability to minimize a window.

The current fix will prevent us for sending 2 requests for PiP one after another by skipping the second unnecessary request.
2026-02-05 12:36:07 -06:00
damencho
fb075c376d fix(prejoin): Handles different ways of disabling prejoin.
Now handles using `config.prejoinConfig.enabled=false` and `config.prejoinConfig={enabled:false}.

Fixes #16892.
2026-02-03 17:58:28 -06:00
Mihaela Dumitru
c457ed0d3c feat(external-api): fire participantMuted event for all mute state changes (#16893) 2026-02-03 10:59:28 +02:00
damencho
1efc5e40e1 fix(settings): Fixes rendering a tab when props change.
The Profile tab can display logged in state and auth id used for it. It does not re-render when this changes in the background.
2026-02-02 15:52:19 -06:00
Horatiu Muresan
b4a64ebc44 fix(recording-button) Fix recording button tooltip (#16891) 2026-01-30 13:28:39 +02:00
Hristo Terezov
dbb3ccc274 feat(CustomPanel): Implement an customizable panel.
The panel will appear on the right side after the participant pane panel. Currently the panel is disabled by default and the components that  are rendered in the panel are empty (null).  The panel is easily customizable by adding some content in the CustomPanel component.
2026-01-29 14:59:06 -06:00
Calin-Teodor
417c38ab9e fix(filmstrip): keep AudioTracksContainer in the DOM while Filmstrip is hidden in reduced UI 2026-01-27 17:53:57 +02:00
Calinteodor
33a4245a1f fix(lobby): reset lobbyVisible state when we a potential conference is being left (#16881)
* Reset lobby state when we we dispatch conferenceWillLeave action.
2026-01-27 12:24:16 +02:00
Mihaela Dumitru
2eb07cb79f feat(participants): store user context data for external API events and functions 2026-01-27 10:42:02 +01:00
damencho
11453dcc79 fix(transcriptions): Fixes stop transcriptions in some cases. 2026-01-23 10:18:23 -06:00
damencho
e45df58cfb fix(tests): Fixes a problem with two notifications. 2026-01-23 06:03:06 -06:00
Calin-Teodor
7d628960d7 feat(breakout-rooms): button margin style fix 2026-01-22 10:52:48 -06:00
Calin-Teodor
cf13b8f0ba fix(responsive-ui): apply reducedUI only when both width and height are below threshold 2026-01-22 10:52:48 -06:00
Jaya Allamsetty
e106109090 fix(recording) Restores track mute state to original state after consent is provided.
Do not forcefully unmute audio and video if the user consents to being recorded and wants to stay unmuted but was muted before hitting join.
2026-01-22 10:11:43 -05:00
Calin-Teodor
fc170891cb feat(subtitles): rework how isAsyncTranscriptionEnabled is being used 2026-01-22 14:00:06 +02:00
Calin-Teodor
775cc52f66 feat(subtitles): hide translation UI for both web and native 2026-01-22 10:50:03 +02:00
Calin-Teodor
3baede6ff1 feat(config): add reducedUIEnabled config to control web side 2026-01-22 10:44:15 +02:00