mirror of
https://github.com/vector-im/element-call.git
synced 2026-07-15 18:49:21 +00:00
Prevent infinite loop
This commit is contained in:
@@ -53,13 +53,11 @@ const InnerButton: FC<InnerButtonButtonProps> = ({ raised, ...props }) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
interface RaisedHandToggleButton {
|
interface RaisedHandToggleButton {
|
||||||
key: string;
|
|
||||||
rtcSession: MatrixRTCSession;
|
rtcSession: MatrixRTCSession;
|
||||||
client: MatrixClient;
|
client: MatrixClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function RaiseHandToggleButton({
|
export function RaiseHandToggleButton({
|
||||||
key,
|
|
||||||
client,
|
client,
|
||||||
rtcSession,
|
rtcSession,
|
||||||
}: RaisedHandToggleButton): ReactNode {
|
}: RaisedHandToggleButton): ReactNode {
|
||||||
@@ -135,7 +133,6 @@ export function RaiseHandToggleButton({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<InnerButton
|
<InnerButton
|
||||||
key={key}
|
|
||||||
disabled={busy}
|
disabled={busy}
|
||||||
onClick={toggleRaisedHand}
|
onClick={toggleRaisedHand}
|
||||||
raised={isHandRaised}
|
raised={isHandRaised}
|
||||||
|
|||||||
@@ -114,7 +114,10 @@ export const ReactionsProvider = ({
|
|||||||
if (!m.sender || !m.eventId) {
|
if (!m.sender || !m.eventId) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (raisedHands[m.sender].parentEventId !== m.eventId) {
|
if (
|
||||||
|
raisedHands[m.sender] &&
|
||||||
|
raisedHands[m.sender].parentEventId !== m.eventId
|
||||||
|
) {
|
||||||
// Membership event for sender has changed.
|
// Membership event for sender has changed.
|
||||||
removeRaisedHand(m.sender);
|
removeRaisedHand(m.sender);
|
||||||
}
|
}
|
||||||
@@ -133,9 +136,9 @@ export const ReactionsProvider = ({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Deliberately ignoring addRaisedHand which was causing looping.
|
// Deliberately ignoring addRaisedHand, raisedHands which was causing looping.
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [raisedHands, room, memberships]);
|
}, [room, memberships]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleReactionEvent = (event: MatrixEvent): void => {
|
const handleReactionEvent = (event: MatrixEvent): void => {
|
||||||
@@ -174,7 +177,7 @@ export const ReactionsProvider = ({
|
|||||||
Object.fromEntries(
|
Object.fromEntries(
|
||||||
Object.entries(raisedHands).map(([uid, data]) => [uid, data.time]),
|
Object.entries(raisedHands).map(([uid, data]) => [uid, data.time]),
|
||||||
),
|
),
|
||||||
[raisedHands],
|
[raisedHands, raisedHandCount],
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user