source: components/roulette/RouletteHeader.jsx@ 9bd09b0

main
Last change on this file since 9bd09b0 was 9bd09b0, checked in by anastasovv <simon@…>, 2 years ago

Roulette place a bet functionality

  • Property mode set to 100644
File size: 3.0 KB
Line 
1import React from 'react'
2
3import Link from 'next/link'
4
5import { useRouter } from 'next/router'
6
7import { AiOutlineArrowLeft } from 'react-icons/ai'
8
9import { useEffect } from 'react'
10import { useDispatch, useSelector } from 'react-redux'
11
12import { setRouletteGame, setPlayer } from '../../redux/reducers/playerSlice'
13import { setRoulette, setStyle } from '../../redux/reducers/styleSlice'
14
15import axios from 'axios';
16
17const RouletteHeader = () => {
18 const dispatch = useDispatch();
19
20 const router = useRouter();
21
22 const playerState = useSelector(state => state.player);
23 const styleState = useSelector(state => state.style);
24
25 useEffect(() => {
26 // display loading screen
27 dispatch(setStyle({
28 ...styleState.style,
29 displayLoadingScreen: true,
30 }));
31
32 axios.get(`/api/roulette?action=get_player_info_on_enter&session_id=${localStorage.CAESSINO_SESSION_ID}`).then(res => {
33 if (res.data?.success) {
34 dispatch(setPlayer({
35 ...playerState.player,
36 displayName: res.data?.displayName,
37 session_id: res.data?.session_id,
38 credits: res.data?.credits,
39 }));
40
41 dispatch(setRouletteGame(res.data?.game));
42
43 dispatch(setRoulette({
44 ...styleState.roulette,
45 inputControls: {
46 ...styleState.roulette.inputControls,
47 bet: {
48 ...styleState.roulette.inputControls.bet,
49 chosenCredits: parseInt(res.data?.credits/2),
50 }
51 }
52 }));
53
54 dispatch(setStyle({
55 ...styleState.style,
56 displayLoadingScreen: false,
57 }))
58
59
60 if (parseInt(res.data?.game.status.toString().substr(1, 1)) == 3) {
61 }
62
63 if (parseInt(res.data?.game.status.toString().substr(1, 1)) == 2) {
64 }
65
66 if (parseInt(res.data?.game.status.toString().substr(1, 1)) == 1) {
67 }
68 }
69 else {
70 dispatch(setStyle({
71 ...styleState.style,
72 notification: {
73 show: true,
74 text: 'Please login in order to play roulette.',
75 status: 'error',
76 },
77 displayLoadingScreen: false,
78 }))
79
80 router.push('/');
81 }
82 });
83 }, []);
84
85 return (
86 <header className="header">
87 <Link href="/" passHref>
88 <h2>
89 <AiOutlineArrowLeft />
90 </h2>
91 </Link>
92 <nav>
93 <ul>
94 <li>Hi, {playerState?.player?.displayName}</li>
95 <li>Balance: ${playerState?.player?.credits}</li>
96 </ul>
97 </nav>
98 </header>
99 )
100}
101
102export default RouletteHeader
Note: See TracBrowser for help on using the repository browser.