mirror of
https://github.com/vector-im/element-call.git
synced 2026-08-08 20:09:19 +00:00
lint
This commit is contained in:
@@ -15,18 +15,18 @@ configure({
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("RaisedHandIndicator", () => {
|
describe("RaisedHandIndicator", () => {
|
||||||
test("renders nothing when no hand has been raised", async () => {
|
test("renders nothing when no hand has been raised", () => {
|
||||||
const { container } = render(<RaisedHandIndicator />);
|
const { container } = render(<RaisedHandIndicator />);
|
||||||
expect(container.firstChild).toBeNull();
|
expect(container.firstChild).toBeNull();
|
||||||
});
|
});
|
||||||
test("renders an indicator when a hand has been raised", async () => {
|
test("renders an indicator when a hand has been raised", () => {
|
||||||
const dateTime = new Date();
|
const dateTime = new Date();
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<RaisedHandIndicator raisedHandTime={dateTime} />,
|
<RaisedHandIndicator raisedHandTime={dateTime} />,
|
||||||
);
|
);
|
||||||
expect(container.firstChild).toMatchSnapshot();
|
expect(container.firstChild).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
test("renders an indicator when a hand has been raised with the expected time", async () => {
|
test("renders an indicator when a hand has been raised with the expected time", () => {
|
||||||
const dateTime = new Date(new Date().getTime() - 60000);
|
const dateTime = new Date(new Date().getTime() - 60000);
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<RaisedHandIndicator raisedHandTime={dateTime} />,
|
<RaisedHandIndicator raisedHandTime={dateTime} />,
|
||||||
|
|||||||
@@ -1,18 +1,26 @@
|
|||||||
import { useEffect, useState } from "react";
|
/*
|
||||||
|
Copyright 2024 New Vector Ltd.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
Please see LICENSE in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { ReactNode, useEffect, useState } from "react";
|
||||||
|
|
||||||
import styles from "./RaisedHandIndicator.module.css";
|
import styles from "./RaisedHandIndicator.module.css";
|
||||||
|
|
||||||
export function RaisedHandIndicator({
|
export function RaisedHandIndicator({
|
||||||
raisedHandTime,
|
raisedHandTime,
|
||||||
}: {
|
}: {
|
||||||
raisedHandTime?: Date;
|
raisedHandTime?: Date;
|
||||||
}) {
|
}): ReactNode {
|
||||||
const [raisedHandDuration, setRaisedHandDuration] = useState("");
|
const [raisedHandDuration, setRaisedHandDuration] = useState("");
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!raisedHandTime) {
|
if (!raisedHandTime) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const calculateTime = () => {
|
const calculateTime = (): void => {
|
||||||
const totalSeconds = Math.ceil(
|
const totalSeconds = Math.ceil(
|
||||||
(new Date().getTime() - raisedHandTime.getTime()) / 1000,
|
(new Date().getTime() - raisedHandTime.getTime()) / 1000,
|
||||||
);
|
);
|
||||||
@@ -22,8 +30,8 @@ export function RaisedHandIndicator({
|
|||||||
`${minutes < 10 ? "0" : ""}${minutes}:${seconds < 10 ? "0" : ""}${seconds}`,
|
`${minutes < 10 ? "0" : ""}${minutes}:${seconds < 10 ? "0" : ""}${seconds}`,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
const to = setInterval(calculateTime, 1000);
|
|
||||||
calculateTime();
|
calculateTime();
|
||||||
|
const to = setInterval(calculateTime, 1000);
|
||||||
return (): void => clearInterval(to);
|
return (): void => clearInterval(to);
|
||||||
}, [setRaisedHandDuration, raisedHandTime]);
|
}, [setRaisedHandDuration, raisedHandTime]);
|
||||||
|
|
||||||
|
|||||||
@@ -8,13 +8,7 @@ Please see LICENSE in the repository root for full details.
|
|||||||
import { TrackReferenceOrPlaceholder } from "@livekit/components-core";
|
import { TrackReferenceOrPlaceholder } from "@livekit/components-core";
|
||||||
import { animated } from "@react-spring/web";
|
import { animated } from "@react-spring/web";
|
||||||
import { RoomMember } from "matrix-js-sdk/src/matrix";
|
import { RoomMember } from "matrix-js-sdk/src/matrix";
|
||||||
import {
|
import { ComponentProps, ReactNode, forwardRef } from "react";
|
||||||
ComponentProps,
|
|
||||||
ReactNode,
|
|
||||||
forwardRef,
|
|
||||||
useEffect,
|
|
||||||
useState,
|
|
||||||
} from "react";
|
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { VideoTrack } from "@livekit/components-react";
|
import { VideoTrack } from "@livekit/components-react";
|
||||||
|
|||||||
Reference in New Issue
Block a user