cinny/src/app/pages/call/CallActivation.tsx
2025-05-10 20:41:44 -05:00

35 lines
1.2 KiB
TypeScript

import React, { useEffect } from 'react';
import { useParams } from 'react-router-dom';
import { logger } from 'matrix-js-sdk/lib/logger';
import { useCallState } from '../client/CallProvider';
import { useMatrixClient } from '../../hooks/useMatrixClient';
export function CallActivationEffect() {
const { roomIdOrAlias: viewedRoomId } = useParams<{ roomIdOrAlias: string }>();
const { activeCallRoomId, isCallActive, setActiveCallRoomId } = useCallState();
const mx = useMatrixClient();
const room = mx.getRoom(viewedRoomId);
useEffect(() => {
if (!viewedRoomId || !mx) {
logger.error('CallActivationEffect: Missing viewedRoomId or MatrixClient.');
return;
}
const isViewingCallRoom = room?.isCallRoom?.() ?? false;
if (isViewingCallRoom) {
if (viewedRoomId !== activeCallRoomId && !isCallActive) {
logger.info(`CallActivationEffect: Auto-activating call for viewed room: ${viewedRoomId}`);
//setActiveCallRoomId(viewedRoomId);
} else {
logger.debug(
`CallActivationEffect: Viewed room ${viewedRoomId} is already the active call.`
);
}
}
}, [viewedRoomId, activeCallRoomId, setActiveCallRoomId, isCallActive, mx, room]);
return null;
}