diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/index.html | 21 | ||||
-rw-r--r-- | client/src/Client.elm | 16 |
2 files changed, 14 insertions, 23 deletions
diff --git a/client/index.html b/client/index.html index adc2ac8..8e1333d 100644 --- a/client/index.html +++ b/client/index.html @@ -1,19 +1,22 @@ <!DOCTYPE HTML> <html> -<head> - <meta charset="UTF-8"> - <title>Client</title> - <link rel="stylesheet" type="text/css" href="/assets/style.css"> -</head> + <head> + <meta charset="UTF-8"> + <title>Client</title> + <link rel="stylesheet" type="text/css" href="$CAFP_BASE/assets/style.css"> + </head> <body> <div id="main"></div> - <script type="text/JavaScript" src="/assets/client.js"></script> + <script type="text/JavaScript" src="$CAFP_BASE/assets/client.js"></script> <script> var app = Elm.Client.init({node: document.querySelector("main")}); - - var roomId = document.location.pathname.split("/")[2]; + var path = document.location.pathname; + if(path.startsWith("$CAFP_BASE")) { + path = path.substr("$CAFP_BASE".length); + } + var roomId = path.split("/")[2]; var url = "ws://" + document.location.host + - "/rooms/" + roomId + "/events"; + "$CAFP_BASE/rooms/" + roomId + "/events"; var socket = new WebSocket(url); app.ports.webSocketOut.subscribe(function(message) { socket.send(message); diff --git a/client/src/Client.elm b/client/src/Client.elm index 7cac663..6b65091 100644 --- a/client/src/Client.elm +++ b/client/src/Client.elm @@ -42,15 +42,8 @@ type alias GameState = type Model = Error String | Connecting - { roomId : String - } | Game GameState -parseRoomId : Url -> Result String String -parseRoomId url = case String.split "/" url.path of - _ :: "rooms" :: roomId :: _ -> Ok roomId - _ -> Err <| "Invalid path: " ++ url.path - viewPlayer : Messages.PlayerView -> Html msg viewPlayer player = Html.div [] <| [ Html.text player.name @@ -64,10 +57,7 @@ view model = case model of [ Html.h1 [] [Html.text "Error"] , Html.p [] [Html.text str] ] - Connecting state -> - [ Html.h1 [] - [Html.text <| "Connecting to room " ++ state.roomId ++ "..."] - ] + Connecting -> [Html.h1 [] [Html.text "Connecting to room..."]] Game game -> [ Html.h1 [] [Html.text "Players"] , Html.ul [] <| List.map @@ -305,9 +295,7 @@ update msg model = case msg of main : Program () Model Msg main = Browser.application - { init = \() url key -> case parseRoomId url of - Err str -> (Error <| "Could not parse room ID: " ++ str, Cmd.none) - Ok roomId -> (Connecting {roomId = roomId}, Cmd.none) + { init = \() url key -> (Connecting, Cmd.none) , update = update , subscriptions = subscriptions , view = \model -> {title = "Client", body = view model} |