import React, { useState, useEffect } from 'react'; import './BotaoVideoChamada.css'; import { FaVideo, FaExpand, FaCompress, FaPhoneSlash } from 'react-icons/fa'; import { JitsiMeeting } from '@jitsi/react-sdk'; import { db } from '../firebaseConfig'; import { ref, set, remove } from "firebase/database"; // MOCK PACIENTE const mockPacientes = [ { id: 1, name: 'Paciente' } ]; // DADOS DO MÉDICO const MEU_ID_MEDICO = 'medico-99'; const MEU_NOME_MEDICO = 'Dr. Rafael'; const BotaoVideoChamada = () => { const [isOpen, setIsOpen] = useState(false); const [isFullScreen, setIsFullScreen] = useState(false); const [callActive, setCallActive] = useState(false); const [callingPatient, setCallingPatient] = useState(null); const [roomName, setRoomName] = useState(''); // UseEffect da tecla "Esc" useEffect(() => { const handleEscKey = (event) => { if (event.key === 'Escape' && isFullScreen) { setIsFullScreen(false); } }; document.addEventListener('keydown', handleEscKey); return () => document.removeEventListener('keydown', handleEscKey); }, [isFullScreen]); // Função para INICIAR a chamada const handleStartCall = (paciente) => { // Adiciona o #config para pular o lobby const newRoomName = `mediconnect-call-${MEU_ID_MEDICO}-${paciente.id}-${Date.now()}#config.prejoinPageEnabled=false`; const callRef = ref(db, `calls/paciente-${paciente.id}`); set(callRef, { incomingCall: { fromId: MEU_ID_MEDICO, fromName: MEU_NOME_MEDICO, roomName: newRoomName } }); setRoomName(newRoomName); setCallingPatient(paciente); setCallActive(true); }; // Função para ENCERRAR a chamada const handleHangUp = () => { if (callingPatient) { const callRef = ref(db, `calls/paciente-${callingPatient.id}`); remove(callRef); } setCallActive(false); setCallingPatient(null); setRoomName(''); console.log("Chamada encerrada."); }; // Função para fechar a janela const toggleVideoChat = () => { setIsOpen(!isOpen); if (isOpen) { handleHangUp(); setIsFullScreen(false); } }; // Função de Tela Cheia const handleFullScreen = () => { setIsFullScreen(!isFullScreen); }; return (
Selecione um paciente para iniciar a chamada: