Use new matrixRTC calling (#11792)

* initial

Signed-off-by: Timo K <toger5@hotmail.de>

* cleanup1

Signed-off-by: Timo K <toger5@hotmail.de>

* bring back call timer

Signed-off-by: Timo K <toger5@hotmail.de>

* more cleanup and test removals

Signed-off-by: Timo K <toger5@hotmail.de>

* remove event

Signed-off-by: Timo K <toger5@hotmail.de>

* cleanups and minor fixes

Signed-off-by: Timo K <toger5@hotmail.de>

* add matrixRTC to stubClient

Signed-off-by: Timo K <toger5@hotmail.de>

* update tests (some got removed)
The removal is a consequence of EW now doing less call logic.
More logic is done by the js sdk (MatrixRTCSession)
And therefore in EC itself.

Signed-off-by: Timo K <toger5@hotmail.de>

* cleanups

Signed-off-by: Timo K <toger5@hotmail.de>

* mock the session

Signed-off-by: Timo K <toger5@hotmail.de>

* lint

Signed-off-by: Timo K <toger5@hotmail.de>

* remove GroupCallDuration

Signed-off-by: Timo K <toger5@hotmail.de>

* review and fixing tests

Signed-off-by: Timo K <toger5@hotmail.de>

---------

Signed-off-by: Timo K <toger5@hotmail.de>
This commit is contained in:
Timo 2023-10-30 16:14:27 +01:00 committed by GitHub
parent c4852dd216
commit 860764c057
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 176 additions and 255 deletions

View file

@ -15,7 +15,8 @@ limitations under the License.
*/
import React, { FC, useState, useEffect, memo } from "react";
import { GroupCall } from "matrix-js-sdk/src/matrix";
// eslint-disable-next-line no-restricted-imports
import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession";
import { formatPreciseDuration } from "../../../DateUtils";
@ -32,20 +33,25 @@ export const CallDuration: FC<CallDurationProps> = memo(({ delta }) => {
return <div className="mx_CallDuration">{formatPreciseDuration(delta)}</div>;
});
interface GroupCallDurationProps {
groupCall: GroupCall;
interface SessionDurationProps {
session: MatrixRTCSession | undefined;
}
/**
* A call duration counter that automatically counts up, given a live GroupCall
* A call duration counter that automatically counts up, given a matrixRTC session
* object.
*/
export const GroupCallDuration: FC<GroupCallDurationProps> = ({ groupCall }) => {
export const SessionDuration: FC<SessionDurationProps> = ({ session }) => {
const [now, setNow] = useState(() => Date.now());
useEffect(() => {
const timer = window.setInterval(() => setNow(Date.now()), 1000);
return () => clearInterval(timer);
}, []);
return groupCall.creationTs === null ? null : <CallDuration delta={now - groupCall.creationTs} />;
// This is a temporal solution.
// Using the oldest membership will update when this user leaves.
// This implies that the displayed call duration will also update consequently.
const createdTs = session?.getOldestMembership()?.createdTs();
return createdTs ? <CallDuration delta={now - createdTs} /> : <CallDuration delta={0} />;
};