aboutsummaryrefslogtreecommitdiff
path: root/client/src/Client.elm
diff options
context:
space:
mode:
authorJasper Van der Jeugt2020-07-30 17:02:43 +0200
committerJasper Van der Jeugt2020-07-30 17:02:43 +0200
commitf4b0e4ec20cd903b7a603edfb043a21bb175b246 (patch)
tree72e16e3b6851d238698c1d076c73a04e0a618786 /client/src/Client.elm
parentf5a7875d605010540ec7c9c8f2a3ff4ed0702597 (diff)
Refactor name changing
Diffstat (limited to '')
-rw-r--r--client/src/Client.elm57
1 files changed, 19 insertions, 38 deletions
diff --git a/client/src/Client.elm b/client/src/Client.elm
index e5afa74..aa2121c 100644
--- a/client/src/Client.elm
+++ b/client/src/Client.elm
@@ -17,9 +17,8 @@ type Msg
| Send
| WebSocketIn String
-- Name changes
- | StartChangingName
- | ChangeName String
- | SubmitNewName
+ | ChangeMyName String
+ | SubmitMyName
type Model
= Error String
@@ -28,7 +27,7 @@ type Model
}
| Game
{ view : GameView
- , changingName : Maybe String
+ , changeMyName : String
}
parseRoomId : Url -> Result String String
@@ -52,26 +51,17 @@ view model = case model of
(\p -> Html.li [] [Html.text p])
game.view.opponents
, Html.h1 [] [Html.text "You"]
- ] ++
- (case game.changingName of
- Nothing ->
- [ Html.p []
- [Html.text game.view.playerName]
- , Html.button
- [Html.Events.onClick StartChangingName]
- [Html.text "change"]
- ]
- Just name ->
- [ Html.input
- [ Html.Attributes.value name
- , Html.Events.onInput ChangeName
- ]
- []
- , Html.button
- [Html.Events.onClick SubmitNewName]
- [Html.text "change"]
- ])
-
+ , Html.input
+ [ Html.Attributes.value game.changeMyName
+ , Html.Events.onInput ChangeMyName
+ ]
+ []
+ , Html.button
+ [ Html.Events.onClick SubmitMyName
+ , Html.Attributes.disabled <| game.view.myName == game.changeMyName
+ ]
+ [Html.text "change"]
+ ]
subscriptions : Model -> Sub Msg
subscriptions model = webSocketIn WebSocketIn
@@ -95,25 +85,16 @@ update msg model = case msg of
_ ->
( Game
{ view = gameView
- , changingName = Nothing
+ , changeMyName = gameView.myName
}
, Cmd.none
)
- StartChangingName -> case model of
- Game game ->
- (Game {game | changingName = Just game.view.playerName}, Cmd.none)
- _ -> (model, Cmd.none)
- ChangeName name -> case model of
- Game game -> (Game {game | changingName = Just name}, Cmd.none)
+ ChangeMyName name -> case model of
+ Game game -> (Game {game | changeMyName = name}, Cmd.none)
_ -> (model, Cmd.none)
- SubmitNewName -> case model of
- Game game ->
- ( Game {game | changingName = Nothing}
- , case game.changingName of
- Nothing -> Cmd.none
- Just name -> send <| Messages.ChangeName name
- )
+ SubmitMyName -> case model of
+ Game game -> (model , send <| Messages.ChangeMyName game.changeMyName)
_ -> (model, Cmd.none)
main : Program () Model Msg