dont set localTransport while still fetching oldest member transport

This commit is contained in:
Timo K
2026-01-14 17:35:35 +01:00
parent 27e351270c
commit b49411abfa
3 changed files with 22 additions and 15 deletions

View File

@@ -435,18 +435,18 @@ export const InCallView: FC<InCallViewProps> = ({
[vm], [vm],
); );
useEffect(() => { // useEffect(() => {
widget?.api.transport // widget?.api.transport
.send( // .send(
gridMode === "grid" // gridMode === "grid"
? ElementWidgetActions.TileLayout // ? ElementWidgetActions.TileLayout
: ElementWidgetActions.SpotlightLayout, // : ElementWidgetActions.SpotlightLayout,
{}, // {},
) // )
.catch((e) => { // .catch((e) => {
logger.error("Failed to send layout change to widget API", e); // logger.error("Failed to send layout change to widget API", e);
}); // });
}, [gridMode]); // }, [gridMode]);
useEffect(() => { useEffect(() => {
if (widget) { if (widget) {

View File

@@ -126,7 +126,9 @@ export const createLocalTransport$ = ({
* The transport over which we should be actively publishing our media. * The transport over which we should be actively publishing our media.
* undefined when not joined. * undefined when not joined.
*/ */
const oldestMemberTransport$ = scope.behavior( const oldestMemberTransport$ = scope.behavior<
LocalTransportWithSFUConfig | null | "fetching"
>(
combineLatest([memberships$]).pipe( combineLatest([memberships$]).pipe(
map(([memberships]) => { map(([memberships]) => {
const oldestMember = memberships.value[0]; const oldestMember = memberships.value[0];
@@ -154,7 +156,7 @@ export const createLocalTransport$ = ({
return from(computeLocalTransportWithSFUConfig()); return from(computeLocalTransportWithSFUConfig());
}), }),
), ),
null, "fetching",
); );
/** /**
@@ -202,7 +204,11 @@ export const createLocalTransport$ = ({
]).pipe( ]).pipe(
map(([useOldestMember, oldestMemberTransport, preferredTransport]) => map(([useOldestMember, oldestMemberTransport, preferredTransport]) =>
useOldestMember useOldestMember
? (oldestMemberTransport ?? preferredTransport) ? oldestMemberTransport === null
? preferredTransport
: oldestMemberTransport === "fetching"
? null
: oldestMemberTransport
: preferredTransport, : preferredTransport,
), ),
distinctUntilChanged((t1, t2) => distinctUntilChanged((t1, t2) =>

View File

@@ -110,6 +110,7 @@ export const widget = ((): WidgetHelpers | null => {
EventType.RoomRedaction, EventType.RoomRedaction,
ElementCallReactionEventType, ElementCallReactionEventType,
EventType.RTCDecline, EventType.RTCDecline,
EventType.RTCMembership, // Send/Read the membership sticky events
]; ];
const sendState = [ const sendState = [