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:
parent
c4852dd216
commit
860764c057
13 changed files with 176 additions and 255 deletions
|
@ -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} />;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue