mirror of
https://github.com/vector-im/element-call.git
synced 2026-10-16 23:45:50 +00:00
WIP
This commit is contained in:
@@ -49,19 +49,21 @@ export type ClientDelegationParts = Pick<
|
|||||||
"_unstable_delegateDelayedLeave" | "baseUrl"
|
"_unstable_delegateDelayedLeave" | "baseUrl"
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
export interface DelegateDelayedLeaveParams {
|
||||||
|
client: ClientDelegationParts;
|
||||||
|
membership: CallMembershipIdentityParts;
|
||||||
|
url: string;
|
||||||
|
roomId: string;
|
||||||
|
delayId: string;
|
||||||
|
}
|
||||||
|
|
||||||
export async function delegateDelayedLeave({
|
export async function delegateDelayedLeave({
|
||||||
client,
|
client,
|
||||||
membership,
|
membership,
|
||||||
url,
|
url,
|
||||||
roomId,
|
roomId,
|
||||||
delayId,
|
delayId,
|
||||||
}: {
|
}: DelegateDelayedLeaveParams): Promise<void> {
|
||||||
client: ClientDelegationParts;
|
|
||||||
membership: CallMembershipIdentityParts;
|
|
||||||
url: string;
|
|
||||||
roomId: string;
|
|
||||||
delayId: string;
|
|
||||||
}): Promise<void> {
|
|
||||||
await doNetworkOperationWithRetry(async () =>
|
await doNetworkOperationWithRetry(async () =>
|
||||||
client._unstable_delegateDelayedLeave({
|
client._unstable_delegateDelayedLeave({
|
||||||
url,
|
url,
|
||||||
|
|||||||
+20
-16
@@ -37,6 +37,15 @@ function isEndpointUnsupported(e: unknown): boolean {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface GetSFUConfigParams {
|
||||||
|
client: csApi.ClientGetTokenParts & openID.ClientOpenIDParts;
|
||||||
|
membership: CallMembershipIdentityParts;
|
||||||
|
transport: UnstableLivekitTransport;
|
||||||
|
roomId: string;
|
||||||
|
role: "publisher" | "subscriber";
|
||||||
|
logger: Logger;
|
||||||
|
}
|
||||||
|
|
||||||
export async function getSFUConfig({
|
export async function getSFUConfig({
|
||||||
client,
|
client,
|
||||||
membership,
|
membership,
|
||||||
@@ -44,14 +53,7 @@ export async function getSFUConfig({
|
|||||||
roomId,
|
roomId,
|
||||||
role,
|
role,
|
||||||
logger,
|
logger,
|
||||||
}: {
|
}: GetSFUConfigParams): Promise<SFUConfig> {
|
||||||
client: csApi.ClientGetTokenParts & openID.ClientOpenIDParts;
|
|
||||||
membership: CallMembershipIdentityParts;
|
|
||||||
transport: UnstableLivekitTransport;
|
|
||||||
roomId: string;
|
|
||||||
role: "publisher" | "subscriber";
|
|
||||||
logger: Logger;
|
|
||||||
}): Promise<SFUConfig> {
|
|
||||||
if ("url" in transport) {
|
if ("url" in transport) {
|
||||||
try {
|
try {
|
||||||
return await csApi.getSFUConfig({
|
return await csApi.getSFUConfig({
|
||||||
@@ -91,6 +93,15 @@ export async function getSFUConfig({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface DelegateDelayedLeaveParams {
|
||||||
|
client: csApi.ClientDelegationParts & openID.ClientOpenIDParts;
|
||||||
|
membership: CallMembershipIdentityParts;
|
||||||
|
transport: UnstableLivekitTransport;
|
||||||
|
roomId: string;
|
||||||
|
delayId: string;
|
||||||
|
logger: Logger;
|
||||||
|
}
|
||||||
|
|
||||||
export async function delegateDelayedLeave({
|
export async function delegateDelayedLeave({
|
||||||
client,
|
client,
|
||||||
membership,
|
membership,
|
||||||
@@ -98,14 +109,7 @@ export async function delegateDelayedLeave({
|
|||||||
roomId,
|
roomId,
|
||||||
delayId,
|
delayId,
|
||||||
logger,
|
logger,
|
||||||
}: {
|
}: DelegateDelayedLeaveParams): Promise<void> {
|
||||||
client: csApi.ClientDelegationParts & openID.ClientOpenIDParts;
|
|
||||||
membership: CallMembershipIdentityParts;
|
|
||||||
transport: UnstableLivekitTransport;
|
|
||||||
roomId: string;
|
|
||||||
delayId: string;
|
|
||||||
logger: Logger;
|
|
||||||
}): Promise<void> {
|
|
||||||
if ("url" in transport) {
|
if ("url" in transport) {
|
||||||
try {
|
try {
|
||||||
await csApi.delegateDelayedLeave({
|
await csApi.delegateDelayedLeave({
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ import {
|
|||||||
type RemoteScreenShareViewModel,
|
type RemoteScreenShareViewModel,
|
||||||
} from "../state/media/RemoteScreenShareViewModel";
|
} from "../state/media/RemoteScreenShareViewModel";
|
||||||
import { Connection } from "../state/CallViewModel/remoteMembers/Connection";
|
import { Connection } from "../state/CallViewModel/remoteMembers/Connection";
|
||||||
import { type SFUConfig } from "../livekit/auth";
|
|
||||||
|
|
||||||
export function withFakeTimers(continuation: () => void): void {
|
export function withFakeTimers(continuation: () => void): void {
|
||||||
vi.useFakeTimers();
|
vi.useFakeTimers();
|
||||||
|
|||||||
Reference in New Issue
Block a user