pixi-rainman-game-engine 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/SettingsUI/SystemSettings/SystemSettingsComponent.d.ts +1 -0
  2. package/dist/SettingsUI/SystemSettings/SystemSettingsComponent.jsx +6 -7
  3. package/dist/SettingsUI/SystemSettings/systemSettings.css +41 -0
  4. package/dist/SettingsUI/components/AutoplaySettings/autoplaySettings.css +267 -0
  5. package/dist/SettingsUI/components/AutoplaySettings/index.d.ts +1 -0
  6. package/dist/SettingsUI/components/AutoplaySettings/index.jsx +38 -26
  7. package/dist/SettingsUI/components/Bet/BetControls.d.ts +1 -0
  8. package/dist/SettingsUI/components/Bet/BetControls.jsx +17 -9
  9. package/dist/SettingsUI/components/Bet/bet.css +115 -0
  10. package/dist/SettingsUI/components/Bet/index.d.ts +1 -0
  11. package/dist/SettingsUI/components/Bet/index.jsx +3 -1
  12. package/dist/SettingsUI/components/BuyFreeSpins/buyFreeSpin.css +46 -0
  13. package/dist/SettingsUI/components/BuyFreeSpins/index.d.ts +1 -0
  14. package/dist/SettingsUI/components/BuyFreeSpins/index.jsx +6 -6
  15. package/dist/SettingsUI/components/CloseModalButton/closeModalButton.css +21 -0
  16. package/dist/SettingsUI/components/CloseModalButton/index.d.ts +1 -0
  17. package/dist/SettingsUI/components/CloseModalButton/index.jsx +7 -3
  18. package/dist/SettingsUI/components/GameRules/gameRules.css +96 -0
  19. package/dist/SettingsUI/components/GameRules/index.d.ts +1 -0
  20. package/dist/SettingsUI/components/GameRules/index.jsx +13 -11
  21. package/dist/SettingsUI/components/OptionButton/index.jsx +1 -1
  22. package/dist/SettingsUI/components/RichLimitingSlider/index.d.ts +1 -0
  23. package/dist/SettingsUI/components/RichLimitingSlider/index.jsx +8 -8
  24. package/dist/SettingsUI/components/RichLimitingSlider/richLimitingSlider.css +39 -0
  25. package/dist/SettingsUI/components/SlidingSwitch/index.d.ts +1 -0
  26. package/dist/SettingsUI/components/SlidingSwitch/index.jsx +5 -4
  27. package/dist/SettingsUI/components/SlidingSwitch/slidingSwitch.css +126 -0
  28. package/dist/SettingsUI/components/SpeedSettingsPopup/index.d.ts +1 -0
  29. package/dist/SettingsUI/components/SpeedSettingsPopup/index.jsx +6 -6
  30. package/dist/SettingsUI/components/SpeedSettingsPopup/speedSettingsPopup.css +119 -0
  31. package/dist/SettingsUI/components/SpeedSwitchButton/index.jsx +5 -6
  32. package/dist/SettingsUI/components/SwitchWithHeader/headerStyle.css +28 -0
  33. package/dist/SettingsUI/components/SwitchWithHeader/index.d.ts +1 -0
  34. package/dist/SettingsUI/components/SwitchWithHeader/index.jsx +6 -5
  35. package/dist/SettingsUI/components/SymbolMultiplierPopup/index.d.ts +2 -1
  36. package/dist/SettingsUI/components/SymbolMultiplierPopup/index.jsx +15 -17
  37. package/dist/SettingsUI/components/SymbolMultiplierPopup/symbolPopup.css +101 -0
  38. package/dist/SettingsUI/components/UXSettings/UXSettings.css +28 -0
  39. package/dist/SettingsUI/components/UXSettings/index.d.ts +1 -0
  40. package/dist/SettingsUI/components/UXSettings/index.jsx +21 -8
  41. package/dist/SettingsUI/components/VolumeSettings/index.d.ts +1 -0
  42. package/dist/SettingsUI/components/VolumeSettings/index.jsx +5 -4
  43. package/dist/SettingsUI/components/VolumeSettings/volume.css +54 -0
  44. package/dist/SettingsUI/hooks/index.d.ts +0 -1
  45. package/dist/SettingsUI/hooks/index.js +0 -1
  46. package/dist/SettingsUI/index.css +35 -46
  47. package/dist/SettingsUI/index.d.ts +1 -1
  48. package/dist/SettingsUI/index.jsx +14 -15
  49. package/dist/application/ButtonsEventManager/ButtonsEventManager.js +1 -0
  50. package/dist/connectivity/ConnectionWrapper.js +1 -1
  51. package/dist/connectivity/serverConnection.d.ts +1 -1
  52. package/dist/connectivity/serverData.d.ts +1 -0
  53. package/dist/connectivity/wins.d.ts +4 -1
  54. package/dist/controllers/AbstractController.d.ts +1 -0
  55. package/dist/controllers/AbstractController.js +4 -1
  56. package/dist/stores/SettingsStore.d.ts +4 -0
  57. package/dist/stores/SettingsStore.js +11 -0
  58. package/package.json +2 -9
  59. package/dist/SettingsUI/components/Button/index.d.ts +0 -2
  60. package/dist/SettingsUI/components/Button/index.jsx +0 -6
  61. package/dist/SettingsUI/components/Modal/index.d.ts +0 -10
  62. package/dist/SettingsUI/components/Modal/index.jsx +0 -24
  63. package/dist/SettingsUI/hooks/useClickOutside.d.ts +0 -6
  64. package/dist/SettingsUI/hooks/useClickOutside.js +0 -20
  65. package/dist/SettingsUI/packedStyles.css +0 -1613
  66. package/dist/SettingsUI/utils/tw.d.ts +0 -2
  67. package/dist/SettingsUI/utils/tw.js +0 -3
@@ -1,2 +1,3 @@
1
+ import "./systemSettings.css";
1
2
  import React from "react";
2
3
  export declare const SystemSettingsComponent: () => React.JSX.Element;
@@ -1,18 +1,17 @@
1
+ import "./systemSettings.css";
1
2
  import i18next from "i18next";
2
3
  import React from "react";
3
4
  import { UI_ITEMS } from "../../utils";
4
5
  import { BetSettings, CloseModalButton, UXSettings } from "../components";
5
- import { useDeviceOrientations } from "../hooks";
6
6
  export const SystemSettingsComponent = () => {
7
- const deviceOrientation = useDeviceOrientations();
8
- return (<div className="flex w-full max-w-lg flex-col justify-center gap-2 p-4 sm:max-w-xl">
9
- <div className="flex w-full justify-center">
10
- <h2 className="text-2xl font-bold uppercase text-primary-500">{i18next.t("systemSettings")}</h2>
7
+ return (<div className="settings">
8
+ <div className="settings__title">
9
+ <h2>{i18next.t("systemSettings")}</h2>
11
10
  </div>
12
11
  <CloseModalButton layerId={UI_ITEMS.settings}/>
13
- <div className="flex w-full flex-col justify-center">
12
+ <div className="settings__column">
13
+ <BetSettings className="bet-desktop__container"/>
14
14
  <UXSettings />
15
- {!deviceOrientation.includes("mobile") ? <BetSettings className="flex w-full justify-center"/> : null}
16
15
  </div>
17
16
  </div>);
18
17
  };
@@ -0,0 +1,41 @@
1
+ .settings__title {
2
+ display: flex;
3
+ flex-direction: row;
4
+ justify-content: center;
5
+ }
6
+
7
+ .settings {
8
+ display: flex;
9
+ flex-direction: column;
10
+ height: 90%;
11
+ align-items: center;
12
+ width: 90%;
13
+ }
14
+
15
+ .settings__title h2 {
16
+ color: #ec5e27;
17
+ margin: 0px;
18
+ text-decoration: underline;
19
+ text-transform: uppercase;
20
+ }
21
+
22
+ .settings__column {
23
+ display: flex;
24
+ flex-direction: row;
25
+ overflow: auto;
26
+ align-items: center;
27
+ height: 100%;
28
+ width: 100%;
29
+ }
30
+
31
+ @media only screen and (max-width: 900px) {
32
+ .settings__column {
33
+ flex-direction: column-reverse;
34
+ }
35
+ }
36
+
37
+ @media only screen and (max-width: 900px) {
38
+ .bet-desktop__container {
39
+ display: none;
40
+ }
41
+ }
@@ -0,0 +1,267 @@
1
+ .autoplay-settings {
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 90%;
5
+ align-items: center;
6
+ width: 70%;
7
+ max-width: 800px;
8
+ justify-content: space-between;
9
+ }
10
+
11
+ .autoplay-settings__title {
12
+ display: flex;
13
+ flex-direction: row;
14
+ justify-content: center;
15
+ }
16
+
17
+ .autoplay-settings__exit {
18
+ font-size: 30px;
19
+ color: white;
20
+ position: absolute;
21
+ right: 30px;
22
+ top: 15px;
23
+ background-color: #00000000;
24
+ border-style: none;
25
+ }
26
+
27
+ .autoplay-settings__title h2 {
28
+ color: #ec5e27;
29
+ margin: 0px;
30
+ text-decoration: underline;
31
+ text-transform: uppercase;
32
+ }
33
+
34
+ .autoplay-settings__sliders {
35
+ width: 100%;
36
+ }
37
+
38
+ .autoplay-settings__switch {
39
+ width: 300px;
40
+ }
41
+
42
+ .autoplay-settings__column {
43
+ display: flex;
44
+ flex-direction: row;
45
+ overflow: auto;
46
+ align-items: center;
47
+ height: 100%;
48
+ width: 100%;
49
+ }
50
+
51
+ .autoplay-settings__switches {
52
+ display: flex;
53
+ flex-direction: row;
54
+ justify-content: space-between;
55
+ align-items: center;
56
+ width: 100%;
57
+ margin: 10px 0px;
58
+ }
59
+
60
+ .autoplay-settings__stop-limits {
61
+ display: flex;
62
+ flex-direction: row;
63
+ width: 100%;
64
+ height: 50px;
65
+ justify-content: center;
66
+ }
67
+
68
+ .autoplay-settings__limit {
69
+ width: 40px;
70
+ border: solid 2px white;
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ font-size: 20px;
75
+ font-weight: bolder;
76
+ margin: 0px 5px;
77
+ color: white;
78
+ }
79
+
80
+ .autoplay-settings__limit:hover {
81
+ background-color: #fdf42525;
82
+ border: 2px solid #fdf425;
83
+ color: #fdf425;
84
+ }
85
+
86
+ .autoplay-settings__limit--active {
87
+ background-color: #fdf42550;
88
+ border: 2px solid #fdf425;
89
+ color: #fdf425;
90
+ }
91
+
92
+ .autoplay-settings__limit--infinity {
93
+ border: 2px solid #5a5a5aad;
94
+ color: #5a5a5aad;
95
+ }
96
+
97
+ .left {
98
+ border-radius: 34px 0px 0px 34px;
99
+ }
100
+
101
+ .right {
102
+ border-radius: 0px 34px 34px 0px;
103
+ }
104
+
105
+ .middle {
106
+ width: 60px;
107
+ border-radius: 0px 0px 0px 0px;
108
+ background-color: #00000000;
109
+ }
110
+
111
+ .circle {
112
+ border-radius: 34px;
113
+ font-size: 40px;
114
+ }
115
+
116
+ .autoplay-settings__limit.circle p {
117
+ position: relative;
118
+ top: -4px;
119
+ }
120
+
121
+ .autoplay-settings__limit.left p {
122
+ position: relative;
123
+ top: -2px;
124
+ }
125
+
126
+ .autoplay-settings__limit.right p {
127
+ position: relative;
128
+ top: -2px;
129
+ }
130
+
131
+ .autoplay-settings__confirmation {
132
+ display: flex;
133
+ flex-direction: row;
134
+ justify-content: center;
135
+ align-items: center;
136
+ width: 100%;
137
+ margin-top: 20px;
138
+ }
139
+
140
+ .autoplay-settings__confirmation-button {
141
+ margin: 10px 0px 10px 10px;
142
+ width: 100px;
143
+ height: 40px;
144
+ border: solid white 2px;
145
+ background-color: black;
146
+ border-radius: 34px;
147
+ font-size: large;
148
+ font-weight: bold;
149
+ color: white;
150
+ display: flex;
151
+ justify-content: center;
152
+ align-items: center;
153
+ margin: 0px 10px;
154
+ }
155
+
156
+ .autoplay-settings__confirmation-button:hover {
157
+ background-color: #fdf42550;
158
+ border: 2px solid #fdf425;
159
+ color: #fdf425;
160
+ }
161
+
162
+ @media only screen and (max-width: 900px) {
163
+ .autoplay-settings {
164
+ width: 90%;
165
+ }
166
+
167
+ .autoplay-settings__column {
168
+ flex-direction: column-reverse;
169
+ }
170
+
171
+ .autoplay-settings__switches {
172
+ width: 100%;
173
+ flex-direction: column;
174
+ }
175
+
176
+ .autoplay-settings__switch {
177
+ width: 250px;
178
+ flex-direction: column;
179
+ margin: 5px 0px;
180
+ }
181
+
182
+ .left {
183
+ width: 40px;
184
+ border-radius: 34px 0px 0px 34px;
185
+ }
186
+
187
+ .right {
188
+ width: 40px;
189
+ border-radius: 0px 34px 34px 0px;
190
+ }
191
+
192
+ .middle {
193
+ width: 70px;
194
+ font-size: 12px;
195
+ border-radius: 0px 0px 0px 0px;
196
+ }
197
+
198
+ .circle {
199
+ border-radius: 34px;
200
+ font-size: 40px;
201
+ width: 30px;
202
+ }
203
+
204
+ .autoplay-settings__stop-limits {
205
+ height: 35px;
206
+ }
207
+
208
+ .autoplay-settings__limit.circle p {
209
+ position: relative;
210
+ top: -4px;
211
+ font-size: 20px;
212
+ }
213
+
214
+ .autoplay-settings__limit.left p {
215
+ position: relative;
216
+ top: -2px;
217
+ }
218
+
219
+ .autoplay-settings__limit.right p {
220
+ position: relative;
221
+ top: -2px;
222
+ }
223
+
224
+ .autoplay-settings__confirmation {
225
+ display: flex;
226
+ flex-direction: row;
227
+ justify-content: center;
228
+ align-items: center;
229
+ width: 100%;
230
+ margin-top: 0px;
231
+ }
232
+
233
+ .left {
234
+ border-radius: 34px 0px 0px 34px;
235
+ }
236
+
237
+ .right {
238
+ border-radius: 0px 34px 34px 0px;
239
+ }
240
+
241
+ .middle {
242
+ width: 60px;
243
+ border-radius: 0px 0px 0px 0px;
244
+ }
245
+
246
+ .circle {
247
+ border-radius: 34px;
248
+ font-size: 40px;
249
+ }
250
+
251
+ .autoplay-settings__limit.circle p {
252
+ top: -2px;
253
+ }
254
+
255
+ .autoplay-settings__limit.left p {
256
+ top: -2px;
257
+ }
258
+
259
+ .autoplay-settings__limit.right p {
260
+ top: -2px;
261
+ }
262
+
263
+ .autoplay-settings__exit {
264
+ right: -10px;
265
+ top: 10px;
266
+ }
267
+ }
@@ -1,4 +1,5 @@
1
1
  import "react-custom-scroll/dist/customScroll.css";
2
+ import "./autoplaySettings.css";
2
3
  import React from "react";
3
4
  export declare const AutoplaySettings: (() => React.JSX.Element) & {
4
5
  displayName: string;
@@ -1,17 +1,16 @@
1
1
  import "react-custom-scroll/dist/customScroll.css";
2
+ import "./autoplaySettings.css";
2
3
  import i18next from "i18next";
3
4
  import { observer } from "mobx-react-lite";
4
5
  import React, { useEffect, useState } from "react";
5
6
  import { COMPONENTS } from "../../../components";
6
7
  import { UI_ITEMS } from "../../../utils";
7
8
  import { useStores } from "../../hooks";
8
- import { cn } from "../../utils/tw";
9
- import { Button } from "../Button";
10
9
  import { CloseModalButton } from "../CloseModalButton";
11
10
  import { RichLimitingSlider } from "../RichLimitingSlider";
12
11
  import { SpeedButtonWithHeader, SwitchWithHeader } from "../SwitchWithHeader";
13
12
  export const AutoplaySettings = observer(() => {
14
- const [limitNumbers, setLimitNumbers] = useState([0]);
13
+ const [limit_numbers, setLimitNumbers] = useState([0]);
15
14
  const initialAutoSpinCount = 50;
16
15
  const availableAutoSpinLimits = [10, 20, 50, 100, 150, 200, 250, 300, 350, 400, 500, 600, 700, 800, 900, 1000];
17
16
  const { settingStore } = useStores();
@@ -51,24 +50,28 @@ export const AutoplaySettings = observer(() => {
51
50
  updateLimitsBounds(initialAutoSpinCount);
52
51
  }, []);
53
52
  const { singleWinExceeds, balancedIncreased, balancedDecreased, howManyAutoSpinsLeft, infinitySpinsEnabled, setSingleWinExceeds, setBalancedIncreased, setBalancedDecreased, setAutoSpinsCount, flipInfinitySpinsFlag, resetAutoplaySettings, } = settingStore;
54
- return (<div className="flex w-full max-w-xs flex-col items-center justify-between gap-8 p-4 sm:max-w-xl">
53
+ return (<div className="autoplay-settings">
55
54
  <CloseModalButton layerId={UI_ITEMS.autoplay}/>
56
- <h2 className="text-center text-3xl font-bold text-primary-500">{i18next.t("autoPlay")}</h2>
57
- <div className="flex h-12 w-full flex-wrap items-center justify-center gap-2 sm:max-w-72 sm:flex-nowrap">
58
- <Button className="flex rounded bg-zinc-800 px-3 py-1 text-lg shadow shadow-primary-500/40 hover:bg-zinc-500 disabled:cursor-not-allowed disabled:bg-zinc-700" onClick={() => {
55
+ <div className="autoplay-settings__title">
56
+ <h2>{i18next.t("autoPlay")}</h2>
57
+ </div>
58
+ <div className="autoplay-settings__stop-limits">
59
+ <div className={`autoplay-settings__limit left ${infinitySpinsEnabled ? "autoplay-settings__limit--infinity" : ""}`} onClick={() => {
59
60
  let indexOfSelectedSpinsLimit = availableAutoSpinLimits.findIndex((limitCount) => limitCount === howManyAutoSpinsLeft);
60
61
  indexOfSelectedSpinsLimit -= 1;
61
62
  if (indexOfSelectedSpinsLimit === -1) {
62
63
  indexOfSelectedSpinsLimit = availableAutoSpinLimits.length - 1;
63
64
  }
64
65
  updateLimitsBounds(availableAutoSpinLimits[indexOfSelectedSpinsLimit]);
65
- }} disabled={infinitySpinsEnabled}>
66
+ }}>
66
67
  <p>-</p>
67
- </Button>
68
- {limitNumbers.map((limiter) => (<Button key={limiter} value={limiter} className={cn("flex items-center justify-center rounded bg-zinc-800 px-5 py-1 text-lg shadow shadow-primary-500/40 hover:bg-zinc-600 disabled:cursor-not-allowed disabled:bg-zinc-700 disabled:text-zinc-500", { "border-2 border-primary-500": limiter === howManyAutoSpinsLeft })} disabled={infinitySpinsEnabled} onClick={(event) => updateLimitsBounds(Number(event.currentTarget.value))}>
69
- <p>{limiter}</p>
70
- </Button>))}
71
- <Button className="flex rounded bg-zinc-800 px-3 py-1 text-lg shadow shadow-primary-500/40 hover:bg-zinc-500 disabled:cursor-not-allowed disabled:bg-zinc-700 disabled:text-zinc-500" onClick={() => {
68
+ </div>
69
+ {limit_numbers.map((limiter, index) => {
70
+ return (<button key={`${limiter}${index}`} value={limiter} className={`autoplay-settings__limit ${limiter === howManyAutoSpinsLeft ? "autoplay-settings__limit--active" : ""} middle ${infinitySpinsEnabled ? "autoplay-settings__limit--infinity" : ""}`} onClick={(event) => updateLimitsBounds(Number(event.currentTarget.value))}>
71
+ <p>{limiter}</p>
72
+ </button>);
73
+ })}
74
+ <div className={`autoplay-settings__limit right ${infinitySpinsEnabled ? "autoplay-settings__limit--infinity" : ""}`} onClick={() => {
72
75
  let indexOfSelectedSpinsLimit = availableAutoSpinLimits.findIndex((limitCount) => limitCount === howManyAutoSpinsLeft);
73
76
  indexOfSelectedSpinsLimit += 1;
74
77
  if (indexOfSelectedSpinsLimit === availableAutoSpinLimits.length) {
@@ -76,34 +79,43 @@ export const AutoplaySettings = observer(() => {
76
79
  }
77
80
  const newAutoSpinsLimitNumber = availableAutoSpinLimits[indexOfSelectedSpinsLimit];
78
81
  updateLimitsBounds(newAutoSpinsLimitNumber);
79
- }} disabled={infinitySpinsEnabled}>
82
+ }}>
80
83
  <p>+</p>
81
- </Button>
82
- <Button className={"flex rounded bg-zinc-800 px-3 py-1 text-lg shadow shadow-primary-500/40 hover:bg-zinc-500 disabled:cursor-not-allowed disabled:bg-zinc-700"} onClick={() => flipInfinitySpinsFlag()}>
84
+ </div>
85
+ <div className={`autoplay-settings__limit circle ${infinitySpinsEnabled ? "autoplay-settings__limit--active" : ""}`} onClick={() => flipInfinitySpinsFlag()}>
83
86
  <p>∞</p>
84
- </Button>
87
+ </div>
85
88
  </div>
86
- <div className="flex w-full max-w-3xl flex-col justify-around gap-4">
89
+
90
+ <div className="autoplay-settings__title">
91
+ <h2>{i18next.t("stopAutoPlay")}</h2>
92
+ </div>
93
+ <div className="autoplay-settings__sliders">
87
94
  <RichLimitingSlider value={singleWinExceeds} setValue={setSingleWinExceeds} maxValue={Number(i18next.t("ifSingleWinExceedsMax"))} description={i18next.t("ifSingleWinExceedsMaxDescription")}/>
88
95
  <RichLimitingSlider value={balancedIncreased} setValue={setBalancedIncreased} maxValue={Number(i18next.t("ifBalanceIncreasesBy"))} description={i18next.t("ifBalanceIncreasesByDescription")}/>
89
96
  <RichLimitingSlider value={balancedDecreased} setValue={setBalancedDecreased} maxValue={Number(i18next.t("ifSingleWinExceedsMax"))} description={i18next.t("ifBalanceDecreaseByDescription")}/>
90
97
  </div>
91
98
 
92
- <div className="flex w-full flex-col items-center justify-between gap-2 sm:flex-row">
93
- <SwitchWithHeader header={i18next.t("onAnyWin")} flag={settingStore.onAnyWin} setFlag={settingStore.setOnAnyWin}/>
94
- <SpeedButtonWithHeader header={i18next.t("speedButtonHeader")} description={i18next.t("speedButtonDescription")}/>
99
+ <div className="autoplay-settings__switches">
100
+ <div className="autoplay-settings__switch">
101
+ <SwitchWithHeader header={i18next.t("onAnyWin")} flag={settingStore.onAnyWin} setFlag={settingStore.setOnAnyWin}/>
102
+ </div>
103
+ <div className="autoplay-settings__switch">
104
+ <SpeedButtonWithHeader header={i18next.t("speedButtonHeader")} description={i18next.t("speedButtonDescription")}/>
105
+ </div>
95
106
  </div>
96
- <div className="flex w-full items-center justify-center gap-4">
97
- <Button className="flex items-center rounded-lg bg-zinc-800 px-4 py-2 text-sm hover:bg-zinc-700" onClick={() => {
107
+
108
+ <div className="autoplay-settings__confirmation">
109
+ <div className="autoplay-settings__confirmation-button" onClick={() => {
98
110
  resetAutoplaySettings();
99
111
  updateLimitsBounds(initialAutoSpinCount);
100
112
  settingStore.handleModalInvocation?.(UI_ITEMS.autoplay);
101
113
  }}>
102
114
  <p>{i18next.t("cancel")}</p>
103
- </Button>
104
- <Button id={COMPONENTS.autoSpinConfirm} className="flex items-center justify-center rounded-lg bg-primary-500 px-4 py-2 text-sm hover:bg-primary-600" onClick={() => settingStore.handleModalInvocation?.(UI_ITEMS.autoplay)}>
115
+ </div>
116
+ <div id={COMPONENTS.autoSpinConfirm} className="autoplay-settings__confirmation-button" onClick={() => settingStore.handleModalInvocation?.(UI_ITEMS.autoplay)}>
105
117
  <p>{i18next.t("confirm")}</p>
106
- </Button>
118
+ </div>
107
119
  </div>
108
120
  </div>);
109
121
  });
@@ -1,3 +1,4 @@
1
+ import "./bet.css";
1
2
  import React from "react";
2
3
  export declare const BetControls: (() => React.JSX.Element) & {
3
4
  displayName: string;
@@ -1,22 +1,30 @@
1
+ import "./bet.css";
1
2
  import i18next from "i18next";
2
3
  import { observer } from "mobx-react-lite";
3
4
  import React from "react";
4
5
  import { useStores } from "../../hooks";
5
- import { Button } from "../Button";
6
6
  export const BetControls = observer(() => {
7
7
  const { settingStore } = useStores();
8
- return (<div className="flex w-full flex-col items-center justify-center gap-2 p-4">
9
- <h2 className="font-bold uppercase text-primary-500 sm:text-2xl">{i18next.t("totalBet")}</h2>
10
- <div className="flex w-full items-center justify-center gap-4">
11
- <Button className="flex h-10 w-8 items-center justify-center rounded-lg bg-primary-400 p-4 font-bold text-black shadow-md transition duration-300 hover:bg-primary-300" name="bet-minus">
8
+ const onClick = (type) => {
9
+ if (type === "increase") {
10
+ settingStore.increaseBet?.();
11
+ }
12
+ else {
13
+ settingStore.decreaseBet?.();
14
+ }
15
+ };
16
+ return (<div className="bet-container">
17
+ <h2>{i18next.t("totalBet")}</h2>
18
+ <div className="bet-container__controls">
19
+ <button name="bet-minus" className="bet-container__button" onClick={() => onClick("decrease")}>
12
20
  -
13
- </Button>
14
- <div className="flex w-fit items-center justify-center rounded-lg bg-zinc-800 px-4 py-2 text-sm sm:text-xl">
21
+ </button>
22
+ <div className="bet-container__value">
15
23
  <p>{settingStore.betText}</p>
16
24
  </div>
17
- <Button className="flex h-10 w-8 items-center justify-center rounded-lg bg-primary-400 p-4 font-bold text-black shadow-md transition duration-300 hover:bg-primary-300" name="bet-plus">
25
+ <button name="bet-plus" className="bet-container__button" onClick={() => onClick("increase")}>
18
26
  +
19
- </Button>
27
+ </button>
20
28
  </div>
21
29
  </div>);
22
30
  });
@@ -0,0 +1,115 @@
1
+ .bet-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ width: 50%;
7
+ margin: 0px 30px;
8
+ }
9
+
10
+ .bet-container__value {
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ width: 150px;
15
+ height: 60px;
16
+ border-radius: 60px;
17
+ border: 2px white;
18
+ border-style: solid;
19
+ margin: 0px 10px;
20
+ }
21
+
22
+ .bet-container__value p {
23
+ font-size: 25px;
24
+ }
25
+
26
+ .bet-container__button {
27
+ height: 62px;
28
+ width: 62px;
29
+ font-size: 40px;
30
+ font-weight: bold;
31
+ border-radius: 50%;
32
+ background-color: rgba(0, 0, 0, 0);
33
+ border: 2px solid white;
34
+ color: white;
35
+ text-align: center;
36
+ cursor: pointer;
37
+ }
38
+
39
+ .bet-container h2 {
40
+ text-align: center;
41
+ color: white;
42
+ text-transform: uppercase;
43
+ }
44
+
45
+ .bet-container__controls {
46
+ display: flex;
47
+ flex-direction: row;
48
+ }
49
+
50
+ .bet-container__button:active {
51
+ background-color: #fdf42550;
52
+ color: #fdf425;
53
+ border: 2px solid #fdf425;
54
+ }
55
+
56
+ @media only screen and (max-width: 900px) {
57
+ #bet-layer.modal {
58
+ width: 90vw;
59
+ height: fit-content;
60
+ top: 40vh;
61
+ left: 5vw;
62
+ }
63
+
64
+ #bet-layer.modal-style {
65
+ flex-direction: column;
66
+ padding-inline: 1vw;
67
+ padding-block: 1vh;
68
+ }
69
+
70
+ .bet-container {
71
+ display: flex;
72
+ flex-direction: column;
73
+ width: 100%;
74
+ }
75
+
76
+ .bet-container__value {
77
+ width: 100px;
78
+ height: 60px;
79
+ }
80
+
81
+ .bet-container h2 {
82
+ color: #ec5e27;
83
+ }
84
+
85
+ .bet-container__value p {
86
+ font-size: 24px;
87
+ }
88
+
89
+ .bet-container__button {
90
+ height: 64px;
91
+ width: 64px;
92
+ font-size: 32px;
93
+ padding: 0px;
94
+ }
95
+ }
96
+
97
+ @media only screen and (orientation: landscape) and (max-width: 900px) {
98
+ #bet-layer.modal {
99
+ width: 90vw;
100
+ height: fit-content;
101
+ top: 25vh;
102
+ left: 5vw;
103
+ }
104
+
105
+ #bet-layer.modal-style {
106
+ flex-direction: column;
107
+ }
108
+
109
+ .bet-container {
110
+ display: flex;
111
+ flex-direction: column;
112
+ width: 100%;
113
+ padding-block: 2vh;
114
+ }
115
+ }
@@ -1,3 +1,4 @@
1
+ import "./bet.css";
1
2
  import React from "react";
2
3
  type BetSettingsProps = {
3
4
  className?: string;
@@ -1,3 +1,4 @@
1
+ import "./bet.css";
1
2
  import { observer } from "mobx-react-lite";
2
3
  import React from "react";
3
4
  import { UI_ITEMS } from "../../../utils";
@@ -5,8 +6,9 @@ import { useDeviceOrientations } from "../../hooks";
5
6
  import { CloseModalButton } from "../CloseModalButton";
6
7
  import { BetControls } from "./BetControls";
7
8
  export const BetSettings = observer(({ className }) => {
9
+ const allClassNames = className ? `bet-container ${className}` : "bet-container";
8
10
  const deviceOrientation = useDeviceOrientations();
9
- return (<div className={className}>
11
+ return (<div className={allClassNames}>
10
12
  {deviceOrientation.includes("mobile") ? <CloseModalButton layerId={UI_ITEMS.bet}/> : null}
11
13
  <BetControls />
12
14
  </div>);