Skip to content

Commit 2dfc51a

Browse files
committed
feat: add game overlay menu, fix tablet paddings
1 parent f4d3a6b commit 2dfc51a

File tree

4 files changed

+47
-21
lines changed

4 files changed

+47
-21
lines changed

src/modules/game/ui/GameOverlay.tsx

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { GameNextTurnButton } from './GameNextTurnButton'
2-
import { PlayerScore } from './PlayerScore'
2+
import { GameOverlayMenu } from './GameOverlayMenu'
3+
import { GameOverlayScore } from './GameOverlayScore'
34
import { useCurrentPlayer, usePlayers } from '..'
45

56
const playerIndexToClassesMap: Record<number, string> = {
@@ -14,24 +15,28 @@ export const GameOverlay = () => {
1415
const currentPlayer = useCurrentPlayer()
1516

1617
return (
17-
<div className="fixed inset-0 grid grid-cols-1 grid-rows-1 p-12 [&>*]:col-span-full [&>*]:row-span-full">
18-
{players.map((player, index) => {
19-
const horizontalPlacement = [0, 3].includes(index) ? 'left' : 'right'
20-
const verticalPlacement = [2, 3].includes(index) ? 'bottom' : 'top'
18+
<div className="fixed inset-0 grid grid-cols-1 grid-rows-1 [&>*]:col-span-full [&>*]:row-span-full">
19+
<GameOverlayMenu />
2120

22-
return (
23-
<PlayerScore
24-
key={player.id}
25-
player={player}
26-
itsTurn={player === currentPlayer}
27-
horizontalPlacement={horizontalPlacement}
28-
verticalPlacement={verticalPlacement}
29-
className={playerIndexToClassesMap[index]}
30-
/>
31-
)
32-
})}
21+
<div className="grid grid-cols-1 grid-rows-1 p-6 [&>*]:col-span-full [&>*]:row-span-full xl:p-12">
22+
{players.map((player, index) => {
23+
const horizontalPlacement = [0, 3].includes(index) ? 'left' : 'right'
24+
const verticalPlacement = [2, 3].includes(index) ? 'bottom' : 'top'
3325

34-
<GameNextTurnButton className="self-end justify-self-center" />
26+
return (
27+
<GameOverlayScore
28+
key={player.id}
29+
player={player}
30+
itsTurn={player === currentPlayer}
31+
horizontalPlacement={horizontalPlacement}
32+
verticalPlacement={verticalPlacement}
33+
className={playerIndexToClassesMap[index]}
34+
/>
35+
)
36+
})}
37+
38+
<GameNextTurnButton className="self-end justify-self-center" />
39+
</div>
3540
</div>
3641
)
3742
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { useNavigate } from 'react-router-dom'
2+
3+
export const GameOverlayMenu = () => {
4+
const navigate = useNavigate()
5+
6+
const onExitClick = () => {
7+
navigate('/')
8+
}
9+
10+
return (
11+
<div className="z-1 flex self-start justify-self-center gap-4">
12+
<button
13+
className="group flex items-center gap-2 rounded-b from-slate-100 to-slate-200 bg-gradient-to-r p-4 text-slate-400 hover:from-slate-100 hover:to-slate-300 hover:text-slate-500"
14+
onClick={onExitClick}
15+
>
16+
<i className="i-lucide-door-closed group-hover:i-lucide-door-open block text-2xl" />
17+
Exit
18+
</button>
19+
</div>
20+
)
21+
}

src/modules/game/ui/PlayerScore.tsx renamed to src/modules/game/ui/GameOverlayScore.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type PlayerScoreProps = {
1212
className?: string
1313
}
1414

15-
export const PlayerScore = ({
15+
export const GameOverlayScore = ({
1616
player,
1717
itsTurn,
1818
horizontalPlacement,
@@ -33,8 +33,8 @@ export const PlayerScore = ({
3333
'flex-row-reverse': isOnRightSide,
3434
})}
3535
>
36-
<div className="text-xl font-medium text-slate">
37-
Player #{player.id}
36+
<div className="text-xl font-medium text-slate-400">
37+
Player #{player.id + 1}
3838
</div>
3939
{itsTurn && (
4040
<div className="h-5 w-5 animate-pulse rounded-full from-primary-400 to-primary-500 bg-gradient-to-r" />

src/pages/GamePage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export function GamePage() {
1010
const areCardsLoading = useAreCardsLoading()
1111

1212
return (
13-
<main className="relative h-screen w-screen flex items-center justify-center gap-4 p-48">
13+
<main className="relative h-screen w-screen flex items-center justify-center gap-4 p-12 landscape:p-28 xl:p-40">
1414
{areCardsLoading ? (
1515
<Loader>
1616
We're preparing <br />

0 commit comments

Comments
 (0)