Skip to content

Commit dae5d07

Browse files
chore: refactor components + clean up types
1 parent fef0ddd commit dae5d07

25 files changed

Lines changed: 177 additions & 195 deletions

File tree

src/components/Analysis/index.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
export * from './MoveMap'
22
export * from './MovePlot'
33
export * from './Highlight'
4-
export * from './LegacyBlunderMeter'
4+
export * from './Tournament'
55
export * from './UserGameList'
6+
export * from './BlunderMeter'
7+
export * from './MovesByRating'
68
export * from './AnalysisGameList'
7-
export * from './LegacyTournament'
89
export * from './DownloadModelModal'
9-
export * from './LegacyAnalysisGameList'
1010
export * from './HorizontalEvaluationBar'
1111
export * from './PositionEvaluationContainer'
1212
export * from './VerticalEvaluationBar'
1313
export * from './ConfigurableScreens'
14-
export * from './MovesByRating'
15-
export * from './Tournament'
16-
export * from './BlunderMeter'

src/components/Board/TreeBoardController.tsx renamed to src/components/Board/BoardController.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ interface Props {
2020
setCurrentMove?: (move: [string, string] | null) => void
2121
}
2222

23-
export const TreeBoardController: React.FC<Props> = ({
23+
export const BoardController: React.FC<Props> = ({
2424
orientation,
2525
setOrientation,
2626
currentNode,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ interface Props {
2727
gameTree?: any
2828
}
2929

30-
export const TreeGameBoard: React.FC<Props> = ({
30+
export const GameBoard: React.FC<Props> = ({
3131
game,
3232
currentNode,
3333
orientation = 'white',

src/components/Board/GameClock.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useState, useEffect, useContext } from 'react'
22

33
import { Color } from 'src/types'
44
import { AuthContext, ThemeContext } from 'src/contexts'
5-
import { PlayTreeControllerContext } from 'src/contexts/PlayTreeControllerContext/PlayTreeControllerContext'
5+
import { PlayControllerContext } from 'src/contexts/PlayControllerContext/PlayControllerContext'
66

77
interface Props {
88
player: Color
@@ -15,7 +15,7 @@ export const GameClock: React.FC<Props> = (
1515
const { theme } = useContext(ThemeContext)
1616
const { user } = useContext(AuthContext)
1717
const { player, toPlay, whiteClock, blackClock, lastMoveTime } = useContext(
18-
PlayTreeControllerContext,
18+
PlayControllerContext,
1919
)
2020

2121
const [referenceTime, setReferenceTime] = useState<number>(Date.now())

src/components/Board/GameplayTreeInterface.tsx renamed to src/components/Board/GameplayInterface.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import {
99
ExportGame,
1010
StatsDisplay,
1111
MovesContainer,
12-
TreeBoardController,
12+
BoardController,
1313
PromotionOverlay,
14-
TreeGameBoard,
14+
GameBoard,
1515
} from 'src/components'
1616
import { useUnload } from 'src/hooks/useUnload'
17-
import { PlayTreeControllerContext } from 'src/contexts/PlayTreeControllerContext/PlayTreeControllerContext'
17+
import { PlayControllerContext } from 'src/contexts/PlayControllerContext/PlayControllerContext'
1818

1919
interface Props {
2020
boardShapes?: DrawShape[]
@@ -23,7 +23,7 @@ interface Props {
2323
playAgain?: () => void
2424
}
2525

26-
export const GameplayTreeInterface: React.FC<React.PropsWithChildren<Props>> = (
26+
export const GameplayInterface: React.FC<React.PropsWithChildren<Props>> = (
2727
props: React.PropsWithChildren<Props>,
2828
) => {
2929
const {
@@ -45,7 +45,7 @@ export const GameplayTreeInterface: React.FC<React.PropsWithChildren<Props>> = (
4545
goToPreviousNode,
4646
goToRootNode,
4747
plyCount,
48-
} = useContext(PlayTreeControllerContext)
48+
} = useContext(PlayControllerContext)
4949
const { theme } = useContext(ThemeContext)
5050
const { isMobile } = useContext(WindowSizeContext)
5151

@@ -190,7 +190,7 @@ export const GameplayTreeInterface: React.FC<React.PropsWithChildren<Props>> = (
190190
</div>
191191
</div>
192192
<div className="relative flex aspect-square w-full max-w-[75vh]">
193-
<TreeGameBoard
193+
<GameBoard
194194
game={game}
195195
moves={moveMap}
196196
setCurrentMove={setCurrentMove}
@@ -227,7 +227,7 @@ export const GameplayTreeInterface: React.FC<React.PropsWithChildren<Props>> = (
227227
</div>
228228
<div>{props.children}</div>
229229
<div className="flex-none">
230-
<TreeBoardController
230+
<BoardController
231231
orientation={orientation}
232232
setOrientation={setOrientation}
233233
currentNode={currentNode}
@@ -261,7 +261,7 @@ export const GameplayTreeInterface: React.FC<React.PropsWithChildren<Props>> = (
261261
) : null}
262262
</div>
263263
<div className="relative flex aspect-square h-[100vw] w-screen">
264-
<TreeGameBoard
264+
<GameBoard
265265
game={game}
266266
moves={moveMap}
267267
setCurrentMove={setCurrentMove}
@@ -282,7 +282,7 @@ export const GameplayTreeInterface: React.FC<React.PropsWithChildren<Props>> = (
282282
<GameClock player={orientation} reversed={true} />
283283
) : null}
284284
<div className="flex-none">
285-
<TreeBoardController
285+
<BoardController
286286
orientation={orientation}
287287
setOrientation={setOrientation}
288288
currentNode={currentNode}

src/components/Board/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export * from './GameClock'
22
export * from './PromotionOverlay'
3-
export * from './TreeGameBoard'
4-
export * from './GameplayTreeInterface'
3+
export * from './GameBoard'
4+
export * from './GameplayInterface'
55
export * from './MovesContainer'
6-
export * from './TreeBoardController'
6+
export * from './BoardController'

src/components/Turing/TuringGames.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
/* eslint-disable jsx-a11y/no-static-element-interactions */
22
import { useContext } from 'react'
3-
import { TuringTreeControllerContext } from 'src/contexts'
3+
import { TuringControllerContext } from 'src/contexts'
44

55
export const TuringGames: React.FC = () => {
6-
const { gameIds, setCurrentId, games } = useContext(
7-
TuringTreeControllerContext,
8-
)
6+
const { gameIds, setCurrentId, games } = useContext(TuringControllerContext)
97
return (
108
<div className="flex flex-row flex-wrap items-start justify-start gap-1 overflow-y-auto">
119
{gameIds.map((id) => {

src/components/Turing/TuringSubmission.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { motion } from 'framer-motion'
22
import { useCallback, useContext, useEffect, useState } from 'react'
33

4-
import { TuringTreeControllerContext } from 'src/contexts'
4+
import { TuringControllerContext } from 'src/contexts'
55

66
export const TuringSubmission = ({ rating }: { rating: number }) => {
77
const { game, submitGuess, getNewGame, commentController } = useContext(
8-
TuringTreeControllerContext,
8+
TuringControllerContext,
99
)
1010
const [comment, setComment] = commentController
1111
const [selected, setSelected] = useState<'white' | 'black' | null>(null)
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import React from 'react'
2+
import { Chess } from 'chess.ts'
3+
import { GameTree } from 'src/types'
4+
import { usePlayMaiaController } from 'src/hooks/usePlayController'
5+
import { BaseTreeControllerContext } from '../BaseTreeControllerContext'
6+
7+
export interface IPlayControllerContext extends BaseTreeControllerContext {
8+
game: ReturnType<typeof usePlayMaiaController>['game']
9+
playType: ReturnType<typeof usePlayMaiaController>['playType']
10+
timeControl: ReturnType<typeof usePlayMaiaController>['timeControl']
11+
player: ReturnType<typeof usePlayMaiaController>['player']
12+
maiaVersion: ReturnType<typeof usePlayMaiaController>['maiaVersion']
13+
playerActive: ReturnType<typeof usePlayMaiaController>['playerActive']
14+
toPlay: ReturnType<typeof usePlayMaiaController>['toPlay']
15+
moves: ReturnType<typeof usePlayMaiaController>['moves']
16+
moveTimes: ReturnType<typeof usePlayMaiaController>['moveTimes']
17+
availableMoves: ReturnType<typeof usePlayMaiaController>['availableMoves']
18+
pieces: ReturnType<typeof usePlayMaiaController>['pieces']
19+
moveList: ReturnType<typeof usePlayMaiaController>['moveList']
20+
whiteClock: ReturnType<typeof usePlayMaiaController>['whiteClock']
21+
blackClock: ReturnType<typeof usePlayMaiaController>['blackClock']
22+
lastMoveTime: ReturnType<typeof usePlayMaiaController>['lastMoveTime']
23+
stats: ReturnType<typeof usePlayMaiaController>['stats']
24+
setMoves: ReturnType<typeof usePlayMaiaController>['setMoves']
25+
setMoveTimes: ReturnType<typeof usePlayMaiaController>['setMoveTimes']
26+
setResigned: ReturnType<typeof usePlayMaiaController>['setResigned']
27+
reset: ReturnType<typeof usePlayMaiaController>['reset']
28+
makeMove: ReturnType<typeof usePlayMaiaController>['makeMove']
29+
updateClock: ReturnType<typeof usePlayMaiaController>['updateClock']
30+
setCurrentNode: ReturnType<typeof usePlayMaiaController>['setCurrentNode']
31+
addMove: ReturnType<typeof usePlayMaiaController>['addMove']
32+
addMoveWithTime: ReturnType<typeof usePlayMaiaController>['addMoveWithTime']
33+
}
34+
35+
const fn = () => {
36+
throw new Error('PlayTreeControllerContext not provided')
37+
}
38+
39+
const defaultGameTree = new GameTree(new Chess().fen())
40+
41+
export const PlayControllerContext =
42+
React.createContext<IPlayControllerContext>({
43+
game: { id: '', moves: [], turn: 'black' },
44+
playType: 'againstMaia',
45+
timeControl: 'unlimited',
46+
player: 'white',
47+
maiaVersion: 'maia_kdd_1100',
48+
playerActive: false,
49+
toPlay: 'black',
50+
moves: [],
51+
moveTimes: [],
52+
availableMoves: [],
53+
pieces: {},
54+
moveList: [],
55+
whiteClock: 0,
56+
blackClock: 0,
57+
lastMoveTime: 0,
58+
plyCount: 0,
59+
orientation: 'white',
60+
setOrientation: fn,
61+
stats: {
62+
lifetime: undefined,
63+
session: { gamesWon: 0, gamesPlayed: 0 },
64+
lastRating: undefined,
65+
rating: 0,
66+
},
67+
setMoves: fn,
68+
setMoveTimes: fn,
69+
setResigned: fn,
70+
reset: fn,
71+
makeMove: fn,
72+
updateClock: fn,
73+
gameTree: defaultGameTree,
74+
currentNode: defaultGameTree.getRoot(),
75+
setCurrentNode: fn,
76+
goToNode: fn,
77+
goToNextNode: fn,
78+
goToPreviousNode: fn,
79+
goToRootNode: fn,
80+
currentIndex: 0,
81+
setCurrentIndex: fn,
82+
addMove: fn,
83+
addMoveWithTime: fn,
84+
})

src/contexts/PlayTreeControllerContext/PlayTreeControllerContext.ts

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)