From 1e64c3d088f8308d0e1d64bab3f575c76ca31e79 Mon Sep 17 00:00:00 2001 From: John <37978984+johnridesabike@users.noreply.github.com> Date: Mon, 1 Jan 2024 17:03:02 -0500 Subject: [PATCH] Add custom names for White/Black Closes #89 --- .../__snapshots__/Pairing_test.bs.js.snap | 580 ++++++++++++++++-- src/Data/Data_Config.res | 37 ++ src/Data/Data_Config.resi | 14 + src/Db.res | 4 + src/Db.resi | 2 + src/HelpDialogs.res | 8 +- src/HelpDialogs.resi | 2 +- src/PageOptions.res | 34 +- src/PageTournament/PageRound.res | 44 +- src/PageTournament/PairPicker.res | 51 +- src/PageTournament/TournamentUtils.res | 8 +- src/PageTournament/TournamentUtils.resi | 2 +- src/__mocks__/Db_mock.bs.js | 40 +- src/__mocks__/Db_mock.res | 4 + src/testdata/DemoData.res | 2 + src/testdata/TestData.res | 2 + 16 files changed, 718 insertions(+), 116 deletions(-) diff --git a/__tests__/__snapshots__/Pairing_test.bs.js.snap b/__tests__/__snapshots__/Pairing_test.bs.js.snap index 5a49669..b452e1f 100644 --- a/__tests__/__snapshots__/Pairing_test.bs.js.snap +++ b/__tests__/__snapshots__/Pairing_test.bs.js.snap @@ -266,7 +266,9 @@ Object { Round 5 - + - White result + White + result - Black result + Black + result Match result @@ -326,7 +331,7 @@ Object { class="content" > Di H + + 0 + - + 0 + @@ -482,7 +494,7 @@ Object { Ev R + + 0 + - + 0 + @@ -638,7 +657,7 @@ Object { Ch R + + 0 + - + 0 + @@ -794,7 +820,7 @@ Object { Ch A + + 0 + - + 0 + @@ -950,7 +983,7 @@ Object { Er R + + 0 + - + 0 + @@ -1106,7 +1146,7 @@ Object { Aa C + + 0 + - + 0 + @@ -1262,7 +1309,7 @@ Object { El M + + 0 + - + 0 + @@ -1418,7 +1472,7 @@ Object { Mr C + + 0 + - + 0 + @@ -1574,7 +1635,7 @@ Object { Ch B + + 0 + - + 0 + @@ -1730,7 +1798,7 @@ Object { Au H + + 0 + - + 0 + @@ -1886,7 +1961,7 @@ Object { Ry S + + 0 + - + 0 + @@ -2042,7 +2124,7 @@ Object { Jo B + + 0 + - + 0 + @@ -2198,7 +2287,7 @@ Object { Kai S + + 0 + - + 0 + @@ -2354,7 +2450,7 @@ Object { Ta C + + 0 + - + 0 + @@ -2510,7 +2613,7 @@ Object { Kel B + + 0 + - + 0 + @@ -2666,7 +2776,7 @@ Object { Dr D + + 0 + - + 0 + @@ -2822,7 +2939,7 @@ Object { Th O + + 0 + - + 0 + @@ -2978,7 +3102,7 @@ Object { Ji J + + 0 + - + 0 + @@ -3134,7 +3265,7 @@ Object { Ka S + + 0 + - + 0 + @@ -3290,7 +3428,7 @@ Object { Am D + + 0 + - + 0 + @@ -3446,7 +3591,7 @@ Object { Ka M + + 0 + - + 0 + @@ -3602,7 +3754,7 @@ Object { Je P + + 0 + - + 0 + @@ -3758,7 +3917,7 @@ Object { Je W + + 0 + - + 0 + @@ -3914,7 +4080,7 @@ Object { Ca S + + 0 + - + 0 + @@ -4070,7 +4243,7 @@ Object { Av H + + 0 + - + 0 + @@ -4226,7 +4406,7 @@ Object { Mi P + + 0 + - + 0 + @@ -4382,7 +4569,7 @@ Object { Ja W + + 0 + - + 0 + @@ -4538,7 +4732,7 @@ Object { Za D + + 0 + - + 0 + @@ -4694,7 +4895,7 @@ Object { Cl M + + 0 + - + 0 + @@ -4850,7 +5058,7 @@ Object { Da N + + 0 + - + 0 + @@ -5006,7 +5221,7 @@ Object { Ke B + + 0 + - + 0 + @@ -5441,7 +5663,9 @@ Object { Round 5 - + - White result + White + result - Black result + Black + result Match result @@ -5501,7 +5728,7 @@ Object { class="content" > Di H + + 0 + - + 0 + @@ -5657,7 +5891,7 @@ Object { Ev R + + 0 + - + 0 + @@ -5813,7 +6054,7 @@ Object { Ch R + + 0 + - + 0 + @@ -5969,7 +6217,7 @@ Object { Ch A + + 0 + - + 0 + @@ -6125,7 +6380,7 @@ Object { Er R + + 0 + - + 0 + @@ -6281,7 +6543,7 @@ Object { Aa C + + 0 + - + 0 + @@ -6437,7 +6706,7 @@ Object { El M + + 0 + - + 0 + @@ -6593,7 +6869,7 @@ Object { Mr C + + 0 + - + 0 + @@ -6749,7 +7032,7 @@ Object { Ch B + + 0 + - + 0 + @@ -6905,7 +7195,7 @@ Object { Au H + + 0 + - + 0 + @@ -7061,7 +7358,7 @@ Object { Ry S + + 0 + - + 0 + @@ -7217,7 +7521,7 @@ Object { Jo B + + 0 + - + 0 + @@ -7373,7 +7684,7 @@ Object { Kai S + + 0 + - + 0 + @@ -7529,7 +7847,7 @@ Object { Ta C + + 0 + - + 0 + @@ -7685,7 +8010,7 @@ Object { Kel B + + 0 + - + 0 + @@ -7841,7 +8173,7 @@ Object { Dr D + + 0 + - + 0 + @@ -7997,7 +8336,7 @@ Object { Th O + + 0 + - + 0 + @@ -8153,7 +8499,7 @@ Object { Ji J + + 0 + - + 0 + @@ -8309,7 +8662,7 @@ Object { Ka S + + 0 + - + 0 + @@ -8465,7 +8825,7 @@ Object { Am D + + 0 + - + 0 + @@ -8621,7 +8988,7 @@ Object { Ka M + + 0 + - + 0 + @@ -8777,7 +9151,7 @@ Object { Je P + + 0 + - + 0 + @@ -8933,7 +9314,7 @@ Object { Je W + + 0 + - + 0 + @@ -9089,7 +9477,7 @@ Object { Ca S + + 0 + - + 0 + @@ -9245,7 +9640,7 @@ Object { Av H + + 0 + - + 0 + @@ -9401,7 +9803,7 @@ Object { Mi P + + 0 + - + 0 + @@ -9557,7 +9966,7 @@ Object { Ja W + + 0 + - + 0 + @@ -9713,7 +10129,7 @@ Object { Za D + + 0 + - + 0 + @@ -9869,7 +10292,7 @@ Object { Cl M + + 0 + - + 0 + @@ -10025,7 +10455,7 @@ Object { Da N + + 0 + - + 0 + @@ -10181,7 +10618,7 @@ Object { Ke B + + 0 + - + 0 + diff --git a/src/Data/Data_Config.res b/src/Data/Data_Config.res index dcecb29..0d00e5e 100644 --- a/src/Data/Data_Config.res +++ b/src/Data/Data_Config.res @@ -29,10 +29,14 @@ module ByeValue = { let decode = json => Js.Json.decodeNumber(json)->Option.getExn->fromFloat } +type alias = option + type t = { avoidPairs: Data_Id.Pair.Set.t, byeValue: ByeValue.t, lastBackup: Js.Date.t, + whiteAlias: alias, + blackAlias: alias, } let decode = json => { @@ -45,18 +49,51 @@ let decode = json => { ->Option.flatMap(Js.Json.decodeString) ->Option.getExn ->Js.Date.fromString, + whiteAlias: d->Js.Dict.get("whiteAlias")->Option.flatMap(Js.Json.decodeString), + blackAlias: d->Js.Dict.get("blackAlias")->Option.flatMap(Js.Json.decodeString), } } +let encodeAlias = o => + switch o { + | None => Js.Json.null + | Some(s) => Js.Json.string(s) + } + let encode = data => Js.Dict.fromArray([ ("avoidPairs", data.avoidPairs->Data_Id.Pair.Set.encode), ("byeValue", data.byeValue->ByeValue.encode), ("lastBackup", data.lastBackup->Js.Date.toJSONUnsafe->Js.Json.string), + ("whiteAlias", encodeAlias(data.whiteAlias)), + ("blackAlias", encodeAlias(data.blackAlias)), ])->Js.Json.object_ let default = { byeValue: Full, avoidPairs: Belt.Set.make(~id=Data_Id.Pair.id), lastBackup: Js.Date.fromFloat(0.0), + whiteAlias: None, + blackAlias: None, } + +let aliasEmpty = None +let alias = s => + switch s { + | "" => None + | s => Some(s) + } + +let aliasToStringWhite = t => + switch t.whiteAlias { + | None => "White" + | Some(s) => s + } + +let aliasToStringBlack = t => + switch t.blackAlias { + | None => "Black" + | Some(s) => s + } + +let aliasToOption = o => o diff --git a/src/Data/Data_Config.resi b/src/Data/Data_Config.resi index fbd9202..56fd5e1 100644 --- a/src/Data/Data_Config.resi +++ b/src/Data/Data_Config.resi @@ -13,13 +13,27 @@ module ByeValue: { let fromFloat: float => t } +type alias + type t = { avoidPairs: Data_Id.Pair.Set.t, byeValue: ByeValue.t, lastBackup: Js.Date.t, + whiteAlias: alias, + blackAlias: alias, } let decode: Js.Json.t => t let encode: t => Js.Json.t let default: t + +/** An empty alias uses "White" or "Black" for player names. */ +let aliasEmpty: alias + +/** An empty string produces an empty alias. */ +let alias: string => alias + +let aliasToStringWhite: t => string +let aliasToStringBlack: t => string +let aliasToOption: alias => option diff --git a/src/Db.res b/src/Db.res index 0c9e107..ac618db 100644 --- a/src/Db.res +++ b/src/Db.res @@ -131,6 +131,8 @@ type actionConfig = | SetByeValue(Data.Config.ByeValue.t) | SetState(Data.Config.t) | SetLastBackup(Js.Date.t) + | SetWhiteAlias(string) + | SetBlackAlias(string) let configReducer = (state: Data.Config.t, action): Data.Config.t => { switch action { @@ -149,6 +151,8 @@ let configReducer = (state: Data.Config.t, action): Data.Config.t => { | SetAvoidPairs(avoidPairs) => {...state, avoidPairs} | SetByeValue(byeValue) => {...state, byeValue} | SetLastBackup(lastBackup) => {...state, lastBackup} + | SetWhiteAlias(s) => {...state, whiteAlias: Data.Config.alias(s)} + | SetBlackAlias(s) => {...state, blackAlias: Data.Config.alias(s)} | SetState(state) => state } } diff --git a/src/Db.resi b/src/Db.resi index 438a2ab..8af5fbc 100644 --- a/src/Db.resi +++ b/src/Db.resi @@ -38,6 +38,8 @@ type actionConfig = | SetByeValue(Data.Config.ByeValue.t) | SetState(Data.Config.t) | SetLastBackup(Js.Date.t) + | SetWhiteAlias(string) + | SetBlackAlias(string) let useConfig: unit => (Data.Config.t, actionConfig => unit) diff --git a/src/HelpDialogs.res b/src/HelpDialogs.res index 181ebb5..c076383 100644 --- a/src/HelpDialogs.res +++ b/src/HelpDialogs.res @@ -17,7 +17,7 @@ module BaseDialog = { module Pairing = { @react.component - let make = (~state, ~ariaLabel) => + let make = (~state, ~config, ~ariaLabel) =>

{`A Swiss-system tournament is effective when you carefully pair players according to @@ -35,7 +35,11 @@ module Pairing = { of ratings. (This gives the chance for an upset!)`->React.string}

  • - {`Players should each alternate playing black or white pieces. To facilitate this, each + {`Players should each alternate playing `->React.string} + {Data.Config.aliasToStringWhite(config)->React.string} + {` and `->React.string} + {Data.Config.aliasToStringBlack(config)->React.string} + {` pieces. To facilitate this, each player should be paired with someone who is due the opposite color that they are due.`->React.string}
  • diff --git a/src/HelpDialogs.resi b/src/HelpDialogs.resi index 323c752..52ef75c 100644 --- a/src/HelpDialogs.resi +++ b/src/HelpDialogs.resi @@ -8,7 +8,7 @@ module Pairing: { @react.component - let make: (~state: Hooks.boolState, ~ariaLabel: string) => React.element + let make: (~state: Hooks.boolState, ~config: Data.Config.t, ~ariaLabel: string) => React.element } module SwissTournament: { diff --git a/src/PageOptions.res b/src/PageOptions.res index 21152e1..073ff7c 100644 --- a/src/PageOptions.res +++ b/src/PageOptions.res @@ -387,7 +387,7 @@ let make = (~windowDispatch=_ => ()) => { }
    -

    {React.string("Bye settings")}

    +

    {React.string("Bye settings")}

    {React.string("Select the default score given to a player who takes a bye.")} @@ -434,6 +434,38 @@ let make = (~windowDispatch=_ => ()) => {

    +

    {React.string("Player labels")}

    +
    +

    {React.string("Use custom labels for opposing players.")}

    + + +

    {React.string("Manage data")}

    {React.string("Last export: ")} diff --git a/src/PageTournament/PageRound.res b/src/PageTournament/PageRound.res index fadd6ba..9b715b4 100644 --- a/src/PageTournament/PageRound.res +++ b/src/PageTournament/PageRound.res @@ -11,7 +11,7 @@ module Id = Data.Id module PlayerMatchInfo = { @react.component - let make = (~player, ~origRating, ~newRating, ~getPlayer, ~scoreData, ~players, ~avoidPairs) => { + let make = (~player, ~origRating, ~newRating, ~getPlayer, ~scoreData, ~players, ~config) => { let { player, hasBye, @@ -27,7 +27,7 @@ module PlayerMatchInfo = { ~players, ~origRating, ~newRating, - ~avoidPairs, + ~config, )

    {player->Player.fullName->React.string}

    @@ -65,7 +65,7 @@ module MatchRow = { ~scoreData, ~tournament: LoadTournament.t, ~className="", - ~avoidPairs, + ~config: Config.t, ) => { let {tourney, setTourney, players, getPlayer, playersDispatch, _} = tournament let {roundList, _} = tourney @@ -215,15 +215,23 @@ module MatchRow = { onBlur=setMatchResultBlur onChange=setMatchResultChange> - - + + @@ -288,7 +296,7 @@ module MatchRow = { getPlayer scoreData players - avoidPairs + config /> @@ -299,7 +307,7 @@ module MatchRow = { getPlayer scoreData players - avoidPairs + config /> @@ -322,7 +330,7 @@ module RoundTable = { ~tournament, ~scoreData=?, ) => { - let ({Config.avoidPairs: avoidPairs, _}, _) = Db.useConfig() + let (config, _) = Db.useConfig() {if Js.Array.length(matches) == 0 { React.null @@ -337,16 +345,22 @@ module RoundTable = { - + - + @@ -374,7 +388,7 @@ module RoundTable = { scoreData tournament className="pageround__tr" - avoidPairs + config /> )->React.array} diff --git a/src/PageTournament/PairPicker.res b/src/PageTournament/PairPicker.res index fcf2812..16ebd19 100644 --- a/src/PageTournament/PairPicker.res +++ b/src/PageTournament/PairPicker.res @@ -206,9 +206,9 @@ module Stage = { ~state, ~dispatch, ~setTourney, - ~byeValue, ~tourney: Tournament.t, ~round, + ~config: Config.t, ) => { let {roundList, _} = tourney @@ -233,7 +233,7 @@ module Stage = { ~white=getPlayer(white), ~black=getPlayer(black), state.result, - byeValue, + config.byeValue, ), ], ) @@ -259,7 +259,8 @@ module Stage = {

    {React.string("Selected for matching:")}

    - {React.string("White: ")} + {React.string(Data.Config.aliasToStringWhite(config))} + {React.string(": ")} {switch state.p1 { | Some(p) => <> @@ -277,7 +278,8 @@ module Stage = { }}

    - {React.string("Black: ")} + {React.string(Data.Config.aliasToStringBlack(config))} + {React.string(": ")} {switch state.p2 { | Some(p) => <> @@ -311,15 +313,23 @@ module Stage = { onChange={e => ReactEvent.Form.target(e)["value"]->Match.Result.fromString->SetResult->dispatch}> - - + + @@ -342,7 +352,7 @@ module Stage = { module PlayerInfo = { @react.component - let make = (~player, ~scoreData, ~players, ~avoidPairs, ~origRating, ~newRating, ~getPlayer) => { + let make = (~player, ~scoreData, ~players, ~config, ~origRating, ~newRating, ~getPlayer) => { let { player, hasBye, @@ -358,7 +368,7 @@ module PlayerInfo = { ~players, ~origRating, ~newRating, - ~avoidPairs, + ~config, )

    {player->Player.fullName->React.string}

    @@ -393,8 +403,8 @@ let make = ( ~unmatched, ~unmatchedWithDummy, ) => { - let ({Config.avoidPairs: avoidPairs, byeValue, _}, _) = Db.useConfig() - let (state, dispatch) = useStageState(byeValue) + let (config, _) = Db.useConfig() + let (state, dispatch) = useStageState(config.byeValue) let {tourney, activePlayers, players, getPlayer, setTourney, playersDispatch, _} = tournament let {roundList, byeQueue, _} = tourney let round = Rounds.get(roundList, roundId) @@ -402,8 +412,8 @@ let make = ( let autoPairHelp = Hooks.useBool(false) /* `createPairingData` is relatively expensive */ let pairData = React.useMemo3( - () => Pairing.make(scoreData, activePlayers, avoidPairs), - (activePlayers, avoidPairs, scoreData), + () => Pairing.make(scoreData, activePlayers, config.avoidPairs), + (activePlayers, config.avoidPairs, scoreData), ) /* Clean staged players if they were removed from the tournament */ React.useEffect3(() => { @@ -429,7 +439,12 @@ let make = ( let autoPair = round => { let newRound = Rounds.Round.addMatches( round, - autoPair(~pairData, ~byeValue, ~byeQueue, ~playerMap=unmatched)->MutableQueue.toArray, + autoPair( + ~pairData, + ~byeValue=config.byeValue, + ~byeQueue, + ~playerMap=unmatched, + )->MutableQueue.toArray, ) switch Rounds.set(roundList, roundId, newRound) { | Some(roundList) => setTourney({...tourney, roundList}) @@ -465,7 +480,7 @@ let make = (
    - + {[state.p1, state.p2] ->Array.map(id => @@ -477,7 +492,7 @@ let make = ( player={getPlayer(playerId)} scoreData players - avoidPairs + config origRating=getPlayer(playerId).rating newRating=None getPlayer @@ -499,7 +514,7 @@ let make = ( - +
    } } diff --git a/src/PageTournament/TournamentUtils.res b/src/PageTournament/TournamentUtils.res index 03a7922..3353ef9 100644 --- a/src/PageTournament/TournamentUtils.res +++ b/src/PageTournament/TournamentUtils.res @@ -52,7 +52,7 @@ type scoreInfo = { let getScoreInfo = ( ~player: Data.Player.t, ~scoreData, - ~avoidPairs, + ~config, ~getPlayer, ~players, ~origRating, @@ -67,8 +67,8 @@ let getScoreInfo = ( } let hasBye = List.some(opponentResults, ((id, _)) => Data.Id.isDummy(id)) let colorBalance = switch Data.Scoring.Score.sum(colorScores)->Data.Scoring.Score.Sum.toFloat { - | x if x < 0.0 => "White +" ++ x->abs_float->Float.toString - | x if x > 0.0 => "Black +" ++ x->Float.toString + | x if x < 0.0 => Data.Config.aliasToStringWhite(config) ++ " +" ++ x->abs_float->Float.toString + | x if x > 0.0 => Data.Config.aliasToStringBlack(config) ++ " +" ++ x->Float.toString | _ => "Even" } @@ -91,7 +91,7 @@ let getScoreInfo = ( ) ->React.array let avoidListHtml = - Data.Id.Pair.Set.toMap(avoidPairs) + Data.Id.Pair.Set.toMap(config.avoidPairs) ->Map.get(player.id) ->Option.mapWithDefault([], Set.toArray) ->Array.map(pId => diff --git a/src/PageTournament/TournamentUtils.resi b/src/PageTournament/TournamentUtils.resi index e783ade..7e8b0ed 100644 --- a/src/PageTournament/TournamentUtils.resi +++ b/src/PageTournament/TournamentUtils.resi @@ -39,7 +39,7 @@ type scoreInfo = { let getScoreInfo: ( ~player: Data.Player.t, ~scoreData: Data.Id.Map.t, - ~avoidPairs: Data.Id.Pair.Set.t, + ~config: Data.Config.t, ~getPlayer: Data.Id.t => Data.Player.t, ~players: Data.Id.Map.t, ~origRating: int, diff --git a/src/__mocks__/Db_mock.bs.js b/src/__mocks__/Db_mock.bs.js index 77e87b8..6da7491 100644 --- a/src/__mocks__/Db_mock.bs.js +++ b/src/__mocks__/Db_mock.bs.js @@ -72,13 +72,17 @@ function configReducer(state, action) { return { avoidPairs: Belt_Set.add(state.avoidPairs, action._0), byeValue: state.byeValue, - lastBackup: state.lastBackup + lastBackup: state.lastBackup, + whiteAlias: state.whiteAlias, + blackAlias: state.blackAlias }; case /* DelAvoidPair */1 : return { avoidPairs: Belt_Set.remove(state.avoidPairs, action._0), byeValue: state.byeValue, - lastBackup: state.lastBackup + lastBackup: state.lastBackup, + whiteAlias: state.whiteAlias, + blackAlias: state.blackAlias }; case /* DelAvoidSingle */2 : var id = action._0; @@ -87,19 +91,25 @@ function configReducer(state, action) { return !Data_Id$Coronate.Pair.has(pair, id); })), byeValue: state.byeValue, - lastBackup: state.lastBackup + lastBackup: state.lastBackup, + whiteAlias: state.whiteAlias, + blackAlias: state.blackAlias }; case /* SetAvoidPairs */3 : return { avoidPairs: action._0, byeValue: state.byeValue, - lastBackup: state.lastBackup + lastBackup: state.lastBackup, + whiteAlias: state.whiteAlias, + blackAlias: state.blackAlias }; case /* SetByeValue */4 : return { avoidPairs: state.avoidPairs, byeValue: action._0, - lastBackup: state.lastBackup + lastBackup: state.lastBackup, + whiteAlias: state.whiteAlias, + blackAlias: state.blackAlias }; case /* SetState */5 : return action._0; @@ -107,7 +117,25 @@ function configReducer(state, action) { return { avoidPairs: state.avoidPairs, byeValue: state.byeValue, - lastBackup: action._0 + lastBackup: action._0, + whiteAlias: state.whiteAlias, + blackAlias: state.blackAlias + }; + case /* SetWhiteAlias */7 : + return { + avoidPairs: state.avoidPairs, + byeValue: state.byeValue, + lastBackup: state.lastBackup, + whiteAlias: Data_Config$Coronate.alias(action._0), + blackAlias: state.blackAlias + }; + case /* SetBlackAlias */8 : + return { + avoidPairs: state.avoidPairs, + byeValue: state.byeValue, + lastBackup: state.lastBackup, + whiteAlias: state.whiteAlias, + blackAlias: Data_Config$Coronate.alias(action._0) }; } diff --git a/src/__mocks__/Db_mock.res b/src/__mocks__/Db_mock.res index f0d22e4..4872a9f 100644 --- a/src/__mocks__/Db_mock.res +++ b/src/__mocks__/Db_mock.res @@ -42,6 +42,8 @@ type actionConfig = Db.actionConfig = | SetByeValue(Data.Config.ByeValue.t) | SetState(Data.Config.t) | SetLastBackup(Js.Date.t) + | SetWhiteAlias(string) + | SetBlackAlias(string) let configReducer = (state: Data.Config.t, action): Data.Config.t => { switch action { @@ -57,6 +59,8 @@ let configReducer = (state: Data.Config.t, action): Data.Config.t => { | SetAvoidPairs(avoidPairs) => {...state, avoidPairs} | SetByeValue(byeValue) => {...state, byeValue} | SetLastBackup(lastBackup) => {...state, lastBackup} + | SetWhiteAlias(s) => {...state, whiteAlias: Data.Config.alias(s)} + | SetBlackAlias(s) => {...state, blackAlias: Data.Config.alias(s)} | SetState(state) => state } } diff --git a/src/testdata/DemoData.res b/src/testdata/DemoData.res index 5c0deb9..73c9263 100644 --- a/src/testdata/DemoData.res +++ b/src/testdata/DemoData.res @@ -36,6 +36,8 @@ let config: Config.t = { ->Array.keepMap(((a, b)) => Id.Pair.make(a, b)) ->Set.fromArray(~id=Id.Pair.id), lastBackup: Js.Date.fromString("1970-01-01T00:00:00.000Z"), + whiteAlias: Config.aliasEmpty, + blackAlias: Config.aliasEmpty, } let players = Map.fromArray( diff --git a/src/testdata/TestData.res b/src/testdata/TestData.res index 0d9c794..7b2a93d 100644 --- a/src/testdata/TestData.res +++ b/src/testdata/TestData.res @@ -803,6 +803,8 @@ let config: Config.t = { ->Array.keepMap(((a, b)) => Id.Pair.make(a, b)) ->Set.fromArray(~id=Id.Pair.id), lastBackup: Js.Date.fromString("1970-01-01T00:00:00.000Z"), + whiteAlias: Config.aliasEmpty, + blackAlias: Config.aliasEmpty, } let players =
    {React.string("#")} - {React.string("White result")} + {React.string(Data.Config.aliasToStringWhite(config))} + {React.string(" result")} {React.string("White")} + {React.string(Config.aliasToStringWhite(config))} + - {React.string("Black result")} + {React.string(Data.Config.aliasToStringBlack(config))} + {React.string(" result")} {React.string("Black")} + {React.string(Config.aliasToStringBlack(config))} + {React.string("Match result")}