diff --git a/src/components/Gameboard/Dice/Dice.jsx b/src/components/Gameboard/Dice/Dice.jsx
deleted file mode 100644
index 84d3a49..0000000
--- a/src/components/Gameboard/Dice/Dice.jsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { useEffect, useContext } from 'react';
-import { SocketContext } from '../../../App';
-import one from '../../../images/dice/1.png';
-import two from '../../../images/dice/2.png';
-import three from '../../../images/dice/3.png';
-import four from '../../../images/dice/4.png';
-import five from '../../../images/dice/5.png';
-import six from '../../../images/dice/6.png';
-import roll from '../../../images/dice/roll.png';
-
-const Dice = ({ rolledNumberCallback, rolledNumber, nowMoving, color, movingPlayer }) => {
- const socket = useContext(SocketContext);
-
- const images = [one, two, three, four, five, six, roll];
-
- const handleRoll = () => {
- socket.emit('game:roll');
- };
-
- useEffect(() => {
- socket.on('game:roll', number => {
- rolledNumberCallback(number);
- });
- }, [socket, rolledNumberCallback]);
-
- return (
-
- {movingPlayer === color ? (
- rolledNumber ? (
-

- ) : nowMoving ? (
-

- ) : null
- ) : null}
-
- );
-};
-export default Dice;
diff --git a/src/components/Gameboard/Gameboard.jsx b/src/components/Gameboard/Gameboard.jsx
index 5217304..99384ac 100644
--- a/src/components/Gameboard/Gameboard.jsx
+++ b/src/components/Gameboard/Gameboard.jsx
@@ -1,6 +1,7 @@
import React, { useState, useEffect, useContext } from 'react';
import ReactLoading from 'react-loading';
import { PlayerDataContext, SocketContext } from '../../App';
+import useSocketData from '../../hooks/useSocketData';
import Map from './Map/Map';
import Navbar from '../Navbar/Navbar';
@@ -11,7 +12,7 @@ const Gameboard = () => {
const [pawns, setPawns] = useState([]);
const [players, setPlayers] = useState([]);
- const [rolledNumber, setRolledNumber] = useState(null);
+ const [rolledNumber, setRolledNumber] = useSocketData('game:roll');
const [time, setTime] = useState();
const [isReady, setIsReady] = useState();
const [nowMoving, setNowMoving] = useState(false);
@@ -48,10 +49,6 @@ const Gameboard = () => {
});
}, [socket]);
- const rolledNumberCallback = number => {
- setRolledNumber(number);
- };
-
return (
<>
{(players[0] && !started) || (time && started) ? (
@@ -64,7 +61,6 @@ const Gameboard = () => {
movingPlayer={movingPlayer}
rolledNumber={rolledNumber}
nowMoving={nowMoving}
- rolledNumberCallback={rolledNumberCallback}
/>
diff --git a/src/components/Navbar/Dice/Dice.jsx b/src/components/Navbar/Dice/Dice.jsx
new file mode 100644
index 0000000..dfd1630
--- /dev/null
+++ b/src/components/Navbar/Dice/Dice.jsx
@@ -0,0 +1,24 @@
+import React, { useContext } from 'react';
+import { SocketContext } from '../../../App';
+import images from '../../../constants/diceImages';
+
+const Dice = ({ rolledNumber, nowMoving, color, movingPlayer }) => {
+ const socket = useContext(SocketContext);
+
+ const handleRoll = () => {
+ socket.emit('game:roll');
+ };
+
+ return (
+
+ {movingPlayer === color ? (
+ rolledNumber ? (
+

+ ) : nowMoving ? (
+

+ ) : null
+ ) : null}
+
+ );
+};
+export default Dice;
diff --git a/src/components/Navbar/Dice/Dice.test.js b/src/components/Navbar/Dice/Dice.test.js
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/Navbar/Navbar.css b/src/components/Navbar/Navbar.css
index 1358d4b..6dc92fd 100644
--- a/src/components/Navbar/Navbar.css
+++ b/src/components/Navbar/Navbar.css
@@ -7,23 +7,6 @@
.roll {
cursor: pointer;
}
-.ready-container {
- display: flex;
- width: 300px;
- justify-content: center;
- align-items: center;
- flex-direction: column;
- flex-flow: row-reverse;
- background-color: grey;
- border-radius: 10px;
- border: 2px solid white;
-}
-.ready-container > label {
- margin-left: 10px;
- margin-right: 10px;
- width: 100px;
- color: white;
-}
.player-container {
display: flex;
align-items: center;
@@ -52,4 +35,3 @@
grid-column: 2;
grid-row: 4;
}
-/* Styl dla overlay */
diff --git a/src/components/Navbar/Navbar.jsx b/src/components/Navbar/Navbar.jsx
index 1b05d12..1a84d19 100644
--- a/src/components/Navbar/Navbar.jsx
+++ b/src/components/Navbar/Navbar.jsx
@@ -1,29 +1,31 @@
import React from 'react';
-import Dice from '../Gameboard/Dice/Dice';
+import Dice from './Dice/Dice';
import NameContainer from './NameContainer/NameContainer';
import ReadyButton from './ReadyButton/ReadyButton';
import './Navbar.css';
+import { PLAYER_COLORS } from '../../constants/colors';
import { useContext } from 'react';
import { PlayerDataContext } from '../../App';
-const Navbar = ({ players, started, time, isReady, rolledNumber, nowMoving, rolledNumberCallback, movingPlayer }) => {
+
+const Navbar = ({ players, started, time, isReady, rolledNumber, nowMoving, movingPlayer }) => {
const context = useContext(PlayerDataContext);
- const colors = ['red', 'blue', 'green', 'yellow'];
+
return (
<>
{players.map((player, index) => (
-
+
- {context.color !== player.color || started ? null : }
+ {context.color === player.color || (!started && )}
))}
>
);
};
+
export default Navbar;
diff --git a/src/constants/diceImages.js b/src/constants/diceImages.js
new file mode 100644
index 0000000..e2acf9c
--- /dev/null
+++ b/src/constants/diceImages.js
@@ -0,0 +1,11 @@
+import one from '../images/dice/1.png';
+import two from '../images/dice/2.png';
+import three from '../images/dice/3.png';
+import four from '../images/dice/4.png';
+import five from '../images/dice/5.png';
+import six from '../images/dice/6.png';
+import roll from '../images/dice/roll.png';
+
+const diceImages = [one, two, three, four, five, six, roll];
+
+export default diceImages;
diff --git a/src/hooks/useSocketData.js b/src/hooks/useSocketData.js
new file mode 100644
index 0000000..d33b7dc
--- /dev/null
+++ b/src/hooks/useSocketData.js
@@ -0,0 +1,13 @@
+import { useState, useContext } from 'react';
+import { SocketContext } from '../App';
+
+const useSocketData = port => {
+ const socket = useContext(SocketContext);
+ const [data, setData] = useState(null);
+ socket.on(port, data => {
+ setData(data);
+ });
+ return [data, setData];
+};
+
+export default useSocketData;