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 %>
+
+
+
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 %>
-
-
-
+ <%= 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