import React from 'react'
import { useEffect } from 'react';
import { useSelector, useDispatch } from 'react-redux'
import axios from 'axios';
import { setAdminInformation } from '../../redux/reducers/adminInformationSlice';
import { setAdmin } from '../../redux/reducers/adminSlice';
import FreeflowCard from '../FreeflowCard';
import Calculations from './Calculations';
const LiveGames = () => {
const dispatch = useDispatch();
const adminState = useSelector(state => state.admin);
const adminInformationState = useSelector(state => state.adminInformation);
useEffect(() => {
let interval = setInterval(() => {
axios.get(`/api/postgre?action=get_live_games_as_admin&admin_id=${localStorage.CAESSINO_ADMIN_ID}`).then(res => {
if (res.data?.success) {
dispatch(setAdminInformation({
...adminInformationState.adminInformation,
liveGames: {
blackjack: {
rooms: res.data?.blackjack,
},
roulette: res.data?.roulette,
poker: {
tables: res.data?.poker,
},
}
}))
}
})
}, 1000);
return () => {
if (interval !== null) clearInterval(interval);
};
}, [])
function hideLiveGamesScreen() {
dispatch(setAdmin({
...adminState.admin,
displays: {
...adminState.admin.displays,
liveGamesScreen: false,
}
}))
}
return (
hideLiveGamesScreen()}>⬅ Go Back
These are the current live games.
Live BLackjack Games:
{ adminInformationState.adminInformation.liveGames.blackjack?.rooms?.map(room => (
{ room?.playerCards?.map((card, i) => (
))}
Player {room.displayName} (${parseInt(room.initialBet) + parseInt(room.sideBet)})
Status:
{room.status}
Outcome:
{room.outcome}
Side Bet Outcome:
{room.sideBetOutcome}
{ room?.dealerCards?.map((card, i) => (
))}
Dealer {room.dealerName}
)) }
Live Roulette Game:
Status: {adminInformationState.adminInformation?.liveGames?.roulette?.status}
Time to start: {adminInformationState.adminInformation?.liveGames?.roulette?.timeToStart}
Ball on number: {adminInformationState.adminInformation?.liveGames?.roulette?.magicNumber}
Winning bets: {adminInformationState.adminInformation?.liveGames?.roulette?.winningBets?.join(", ")}
Players:
{ adminInformationState.adminInformation?.liveGames?.roulette?.players?.map((player, i) => (
Player {i+1} ->
{player.name} (${player.betAmount})
Betted on: {player.whichBets.join(", ")}
Outcome: {player.outcome}
)) }
Live Poker Games:
{ adminInformationState.adminInformation.liveGames.poker?.tables?.map(table => (
Round: {table?.round}/4
Started: {table?.started}
Player on turn: {table?.turnIdx}
Pot: {table?.pot}
Winners: {table?.winners?.map(e=>e.displayName)?.join(", ")}
{ table?.cards?.map((card, i) => (
))}
Players:
{table.players?.map(player => (
Player {player.displayName} (${player.betAmount})
{ player?.cards?.map((card, i) => (
))}
Hand:
))}
)) }
)
}
export default LiveGames