Commit Graph

5580 Commits

Author SHA1 Message Date
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
Calinteodor
65eb2a2899 feat(base/modal): small updates around JitsiScreen footer (#16727)
*UI updates and reworks around JitsiScreen footer and its children.
2026-01-21 13:05:05 +02:00
Boris Grozev
f0452d05b9 feat: Hide the translation UI when asyncTranscription is used. 2026-01-20 11:56:13 -06:00
damencho
1102f4205a fix: Fixes setting backend recording when async transcriptions are not on. 2026-01-20 11:56:06 -06:00
Calinteodor
447def54c8 feat(chat/native): add Closed Captions tab (#16787)
* Added CC tab inside Chat screen and some UI fixes on mobile.
2026-01-20 13:33:46 +02:00
Calinteodor
481b9a6e58 feat(tracks): add/remove "ended" listener when screen sharing
* Listen to the MediaStreamTrack "ended" event so local screen-share state is toggled off when capture is terminated externally.
2026-01-19 16:07:59 +02:00
damencho
fb3bc3c367 feat(dynamic-branding): Adds more options for overriding translations.
In branding you can add now
"labels-translation-languages": {
        "en": "/static/translation-overwritten-en.json"
    }

This allows overwriting strings from the translation-languages namespace, till now it was possible only for the main one.
2026-01-16 07:47:54 -06:00
zobadaniel
9fa5489154 add lower sorbian to the list of codes (#16844) 2026-01-16 07:39:02 -06:00
Anton
9499bf29ed fix(premeeting): device status indicator size when label is long (#16559) 2026-01-16 09:14:32 +01:00
bgrozev
d324935501 doc: Add a comment about JWT verification. (#16837) 2026-01-14 11:39:14 -06:00
Harsh_w/n
9832c7a226 fix(recording): use cloned tracks for local recording; reset flags on stop (#16535)
Fixes: https://github.com/jitsi/jitsi-meet/issues/16491
2026-01-12 10:45:26 +01:00
Calinteodor
0d572b3bfb feat(participants-pane/native): fix participants sort (#13997)
* Make participants sort based on what web does.
2026-01-08 15:30:37 +02:00
damencho
609eab5f83 fix(chat): Clears private message notice if sender leaves.
If you are in a private conversation with someone and that participant leaves, the selection of messages switches to Everyone but the private message notice stays.
2026-01-07 12:33:38 -06:00