Update LocalMember.ts
This commit is contained in:
@@ -407,9 +407,7 @@ export const createLocalMembership$ = ({
|
|||||||
matrix: matrixError ?? rtcSessionStatus,
|
matrix: matrixError ?? rtcSessionStatus,
|
||||||
media: mediaError ?? mediaState,
|
media: mediaError ?? mediaState,
|
||||||
};
|
};
|
||||||
else {
|
return TransportState.Waiting;
|
||||||
return TransportState.Waiting;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -423,19 +421,21 @@ export const createLocalMembership$ = ({
|
|||||||
])
|
])
|
||||||
.subscribe(([prev, current]) => {
|
.subscribe(([prev, current]) => {
|
||||||
if (!widget) return;
|
if (!widget) return;
|
||||||
|
// JOIN prev=false (was left) => current-true (now joiend)
|
||||||
if (!prev && current) {
|
if (!prev && current) {
|
||||||
try {
|
widget.api.transport
|
||||||
void widget.api.transport.send(ElementWidgetActions.JoinCall, {});
|
.send(ElementWidgetActions.JoinCall, {})
|
||||||
} catch (e) {
|
.catch((e) => {
|
||||||
logger.error("Failed to send join action", e);
|
logger.error("Failed to send join action", e);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
// LEAVE prev=false (was joined) => current-true (now left)
|
||||||
if (prev && !current) {
|
if (prev && !current) {
|
||||||
try {
|
widget.api.transport
|
||||||
void widget?.api.transport.send(ElementWidgetActions.HangupCall, {});
|
.send(ElementWidgetActions.HangupCall, {})
|
||||||
} catch (e) {
|
.catch((e) => {
|
||||||
logger.error("Failed to send hangup action", e);
|
logger.error("Failed to send hangup action", e);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -575,8 +575,12 @@ export const createLocalMembership$ = ({
|
|||||||
tracks$,
|
tracks$,
|
||||||
participant$,
|
participant$,
|
||||||
reconnecting$: scope.behavior(
|
reconnecting$: scope.behavior(
|
||||||
homeserverConnected.rtsSession$.pipe(
|
localMemberState$.pipe(
|
||||||
map((sessionStatus) => sessionStatus === RTCSessionStatus.Reconnecting),
|
map((state) => {
|
||||||
|
if (typeof state === "object" && "matrix" in state)
|
||||||
|
return state.matrix === RTCSessionStatus.Reconnecting;
|
||||||
|
return false;
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
disconnected$: scope.behavior(
|
disconnected$: scope.behavior(
|
||||||
|
|||||||
Reference in New Issue
Block a user