node-go/play-node-go/src/pages/Room/Room.js

55 lines
1.4 KiB
JavaScript
Raw Normal View History

import React, { useEffect, useState } from 'react';
import { useParams } from 'react-router-dom';
import './Room.scss';
import socketIOClient from 'socket.io-client';
import config from '../../config';
import roomsServices from '../../services/api/roomsServices';
const Room = (props) => {
const state = props.state;
const dispatch = props.dispatch;
const roomId = parseInt(useParams().id) || 0;
const [ socketData, setSocketData ] = useState();
const [ messages, setMessages ] = useState();
const fetchRoomAPI = async () => {
const response = await roomsServices.getRoomService(roomId);
if (response) {
const action = {
type: 'ROOMS',
message: 'JOIN_ROOM',
body: response
}
return dispatch(action);
}
}
useEffect(() => {
fetchRoomAPI();
}, [])
// ! [start] roomSocket
const roomSocket = socketIOClient(`${config.socketAddress}/${roomId}`)
const roomSocketConnect = () => {
roomSocket.emit('connect');
// ! dispatch data
roomSocket.on('connected', data => setSocketData('room socket connected'));
roomSocket.on('connect_error', err => console.log(err));
roomSocket.on('error', err => console.log(err));
}
useEffect(() => {
roomSocketConnect();
}, [])
// ! [end]
2020-01-08 21:37:44 +00:00
return (
2020-01-16 05:59:05 +00:00
<div className="Room" data-testid="Room">
<h2></h2>
2020-01-16 05:59:05 +00:00
</div>
2020-01-08 21:37:44 +00:00
);
}
export default Room;