diff --git a/src/config/Router.tsx b/src/config/Router.tsx index abfe311..2746f3d 100644 --- a/src/config/Router.tsx +++ b/src/config/Router.tsx @@ -2,12 +2,14 @@ import React from "react"; import {BrowserRouter, Route, Routes} from "react-router-dom"; import Home from "../layout/pages/Home"; import NotFound from "../layout/pages/NotFound"; +import Room from "../layout/pages/Room"; const Router = () => { return ( }/> + }/> }/> diff --git a/src/layout/pages/Home.tsx b/src/layout/pages/Home.tsx index e381347..5c63fe8 100644 --- a/src/layout/pages/Home.tsx +++ b/src/layout/pages/Home.tsx @@ -1,42 +1,42 @@ import React from "react"; -import useWebSocket from 'react-use-websocket'; -const WS_URL = "ws://localhost:5062/ws"; +const ROOM_URL = 'http://localhost:5062/room'; const Home = () => { - const [message, setMessage] = React.useState(''); - const [messages, setMessages] = React.useState([]); + const [rooms, setRooms] = React.useState([]); - const websocket = useWebSocket(WS_URL, { - onOpen: () => { - console.log('WebSocket connection established.'); - }, - onMessage: (event) => { - setMessages([...messages, event.data]); - } - }); + React.useEffect(() => { + fetch(ROOM_URL) + .then((r) => { + console.log(r); + return r.json(); + }) + .then((data) => { + console.log(data); + setRooms(data); + }); + }, []); - const handleSend = () => { - websocket.sendMessage(message); - setMessage(''); + const handleCreateRoom = () => { + fetch(ROOM_URL, { + method: 'POST', + }).then(r => r.json()).then(data => { + setRooms([...rooms, data]); + }); } - const handleMessageChange = (event: React.ChangeEvent) => { - setMessage(event.target.value); + const gotoRoom = (roomId: string) => { + window.location.href = `/room/${roomId}`; } return (
-
- - Send -
+
    { - messages.map((message, index) => { - return
  • {message}
  • + rooms.map((room, index) => { + return
  • gotoRoom(room)}>{room}
  • }) }
diff --git a/src/layout/pages/Room.tsx b/src/layout/pages/Room.tsx new file mode 100644 index 0000000..203d545 --- /dev/null +++ b/src/layout/pages/Room.tsx @@ -0,0 +1,51 @@ +import useWebSocket from "react-use-websocket"; +import React from "react"; +import {useParams} from "react-router"; + +const Room = () => { + + const {roomId} = useParams(); + + const WS_URL = `ws://localhost:5062/room/${roomId}`; + + const [message, setMessage] = React.useState(''); + const [messages, setMessages] = React.useState([]); + + const websocket = useWebSocket(WS_URL, { + onOpen: () => { + console.log('WebSocket connection established.'); + }, + onMessage: (event) => { + setMessages([...messages, event.data]); + } + }); + + const handleSend = () => { + websocket.sendMessage(message); + setMessage(''); + } + + const handleMessageChange = (event: React.ChangeEvent) => { + setMessage(event.target.value); + } + + return ( +
+

Room {roomId}

+
+ + Send +
+
    + { + messages.map((message, index) => { + return
  • {message}
  • + }) + } +
+
+ ) +} + +export default Room;