diff --git a/lib/chess_web/templates/game/game_info.html.leex b/lib/chess_web/templates/game/game_info.html.leex new file mode 100644 index 0000000..3a830b8 --- /dev/null +++ b/lib/chess_web/templates/game/game_info.html.leex @@ -0,0 +1,6 @@ +
+

+ Playing <%= opponent(@game, @user.id).name %> + offline +

+
diff --git a/lib/chess_web/templates/game/show.html.eex b/lib/chess_web/templates/game/show.html.eex index 560399e..19181e3 100644 --- a/lib/chess_web/templates/game/show.html.eex +++ b/lib/chess_web/templates/game/show.html.eex @@ -6,12 +6,11 @@ session: %{"user_id" => current_user(@conn).id, "game_id" => @game.id} ) %> -
-

- Playing <%= opponent(@game, current_user(@conn).id).name %> - offline -

-
+ <%= live_render( + @conn, + ChessWeb.GameInfoLive, + session: %{"user_id" => current_user(@conn).id, "game_id" => @game.id} + ) %>
diff --git a/lib/chess_web/views/live/game_info_live.ex b/lib/chess_web/views/live/game_info_live.ex new file mode 100644 index 0000000..642a805 --- /dev/null +++ b/lib/chess_web/views/live/game_info_live.ex @@ -0,0 +1,21 @@ +defmodule ChessWeb.GameInfoLive do + use Phoenix.LiveView + + alias Chess.Store.User + alias Chess.Store.Game + alias Chess.Repo + + def render(assigns) do + Phoenix.View.render(ChessWeb.GameView, "game_info.html", assigns) + end + + def mount(_params, %{"game_id" => game_id, "user_id" => user_id}, socket) do + user = Repo.get!(User, user_id) + + game = + Game.for_user(user) + |> Repo.get!(game_id) + + {:ok, assign(socket, game: game, user: user)} + end +end