From 4e6ffd64c271d5e97a58bdc62e3d76990420a8d0 Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Mon, 4 Nov 2024 15:41:40 +0000 Subject: [PATCH] Remove old raised hand component --- src/button/RaisedHandToggleButton.tsx | 133 -------------------------- 1 file changed, 133 deletions(-) delete mode 100644 src/button/RaisedHandToggleButton.tsx diff --git a/src/button/RaisedHandToggleButton.tsx b/src/button/RaisedHandToggleButton.tsx deleted file mode 100644 index 277817de..00000000 --- a/src/button/RaisedHandToggleButton.tsx +++ /dev/null @@ -1,133 +0,0 @@ -/* -Copyright 2024 New Vector Ltd. - -SPDX-License-Identifier: AGPL-3.0-only -Please see LICENSE in the repository root for full details. -*/ - -import { Button as CpdButton, Tooltip } from "@vector-im/compound-web"; -import { - ComponentPropsWithoutRef, - FC, - ReactNode, - useCallback, - useState, -} from "react"; -import { useTranslation } from "react-i18next"; -import { logger } from "matrix-js-sdk/src/logger"; -import { EventType, RelationType } from "matrix-js-sdk/src/matrix"; -import { MatrixClient } from "matrix-js-sdk/src/client"; -import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession"; - -import { useReactions } from "../useReactions"; -import { useMatrixRTCSessionMemberships } from "../useMatrixRTCSessionMemberships"; - -interface InnerButtonProps extends ComponentPropsWithoutRef<"button"> { - raised: boolean; -} - -const InnerButton: FC = ({ raised, ...props }) => { - const { t } = useTranslation(); - - return ( - - -

- ✋ -

-
-
- ); -}; - -interface RaisedHandToggleButtonProps { - rtcSession: MatrixRTCSession; - client: MatrixClient; -} - -export function RaiseHandToggleButton({ - client, - rtcSession, -}: RaisedHandToggleButtonProps): ReactNode { - const { raisedHands, myReactionId } = useReactions(); - const [busy, setBusy] = useState(false); - const userId = client.getUserId()!; - const isHandRaised = !!raisedHands[userId]; - const memberships = useMatrixRTCSessionMemberships(rtcSession); - - const toggleRaisedHand = useCallback(() => { - const raiseHand = async (): Promise => { - if (isHandRaised) { - if (!myReactionId) { - logger.warn(`Hand raised but no reaction event to redact!`); - return; - } - try { - setBusy(true); - await client.redactEvent(rtcSession.room.roomId, myReactionId); - logger.debug("Redacted raise hand event"); - } catch (ex) { - logger.error("Failed to redact reaction event", myReactionId, ex); - } finally { - setBusy(false); - } - } else { - const myMembership = memberships.find((m) => m.sender === userId); - if (!myMembership?.eventId) { - logger.error("Cannot find own membership event"); - return; - } - const parentEventId = myMembership.eventId; - try { - setBusy(true); - const reaction = await client.sendEvent( - rtcSession.room.roomId, - EventType.Reaction, - { - "m.relates_to": { - rel_type: RelationType.Annotation, - event_id: parentEventId, - key: "🖐️", - }, - }, - ); - logger.debug("Sent raise hand event", reaction.event_id); - } catch (ex) { - logger.error("Failed to send reaction event", ex); - } finally { - setBusy(false); - } - } - }; - - void raiseHand(); - }, [ - client, - isHandRaised, - memberships, - myReactionId, - rtcSession.room.roomId, - userId, - ]); - - return ( - - ); -}