diff --git a/assets/bun.lockb b/assets/bun.lockb
index b0a82ae..e7f3c73 100755
Binary files a/assets/bun.lockb and b/assets/bun.lockb differ
diff --git a/assets/js/app.js b/assets/js/app.js
index 5faf26a..aeef705 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -1,14 +1,14 @@
-// Establish Phoenix Socket and LiveView configuration.
-import { Socket, LongPoll } from "phoenix";
-import { LiveSocket } from "phoenix_live_view";
+// Phoenix assets are imported from dependencies.
import topbar from "topbar";
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content");
-let socketPath = document.querySelector("meta[name='socket-path']").getAttribute("content");
-let socketTransport = document.querySelector("meta[name='socket-transport']").getAttribute("content");
-let normalizedTransport = (socketTransport == "longpoll") ? LongPoll : WebSocket;
+let livePath = document.querySelector("meta[name='live-path']").getAttribute("content");
+let liveTransport = document .querySelector("meta[name='live-transport']") .getAttribute("content");
-let liveSocket = new LiveSocket(socketPath, Socket, { transport: normalizedTransport, params: { _csrf_token: csrfToken }});
+let liveSocket = new LiveView.LiveSocket(livePath, Phoenix.Socket, {
+ transport: liveTransport === "longpoll" ? Phoenix.LongPoll : WebSocket,
+ params: { _csrf_token: csrfToken },
+});
// Show progress bar on live navigation and form submits
topbar.config({ barColors: { 0: "#29d" }, shadowColor: "rgba(0, 0, 0, .3)" });
diff --git a/dev.exs b/dev.exs
index af25241..a2f0427 100644
--- a/dev.exs
+++ b/dev.exs
@@ -5,7 +5,7 @@
Mix.install([
{:ecto_sqlite3, ">= 0.0.0"},
{:error_tracker, path: ".", force: true},
- {:phoenix_playground, "~> 0.1.7"}
+ {:phoenix_playground, "~> 0.1.8"}
])
otp_app = :error_tracker_dev
diff --git a/lib/error_tracker/web.ex b/lib/error_tracker/web.ex
index 448909d..c04dd8b 100644
--- a/lib/error_tracker/web.ex
+++ b/lib/error_tracker/web.ex
@@ -62,7 +62,7 @@ defmodule ErrorTracker.Web do
```elixir
config :error_tracker,
socket: [
- path: "/my-custom-socket-path"
+ path: "/my-custom-live-path"
transport: :longpoll # (accepted values are :longpoll or :websocket)
]
```
diff --git a/lib/error_tracker/web/components/core_components.ex b/lib/error_tracker/web/components/core_components.ex
index 12eb26d..4c413b4 100644
--- a/lib/error_tracker/web/components/core_components.ex
+++ b/lib/error_tracker/web/components/core_components.ex
@@ -26,7 +26,7 @@ defmodule ErrorTracker.Web.CoreComponents do
]}
{@rest}
>
- <%= render_slot(@inner_block) %>
+ {render_slot(@inner_block)}
"""
end
@@ -42,7 +42,7 @@ defmodule ErrorTracker.Web.CoreComponents do
]}
{@rest}
>
- <%= render_slot(@inner_block) %>
+ {render_slot(@inner_block)}
"""
end
@@ -80,7 +80,7 @@ defmodule ErrorTracker.Web.CoreComponents do
class={["text-sm font-medium me-2 py-1 px-2 rounded-lg ring-1 ring-inset", @color_class]}
{@rest}
>
- <%= render_slot(@inner_block) %>
+ {render_slot(@inner_block)}
"""
end
@@ -124,9 +124,9 @@ defmodule ErrorTracker.Web.CoreComponents do
:if={assigns[:title]}
class={["text-sm font-semibold mb-2 uppercase text-gray-400", @title_class]}
>
- <%= @title %>
+ {@title}
- <%= render_slot(@inner_block) %>
+ {render_slot(@inner_block)}
"""
end
diff --git a/lib/error_tracker/web/components/layouts.ex b/lib/error_tracker/web/components/layouts.ex
index 2ad77a4..9714c81 100644
--- a/lib/error_tracker/web/components/layouts.ex
+++ b/lib/error_tracker/web/components/layouts.ex
@@ -2,16 +2,25 @@ defmodule ErrorTracker.Web.Layouts do
@moduledoc false
use ErrorTracker.Web, :html
- @default_socket_config %{path: "/live", transport: :websocket}
+ phoenix_js_paths =
+ for app <- ~w[phoenix phoenix_html phoenix_live_view]a do
+ path = Application.app_dir(app, ["priv", "static", "#{app}.js"])
+ Module.put_attribute(__MODULE__, :external_resource, path)
+ path
+ end
+
+ @static_path Application.app_dir(:error_tracker, ["priv", "static"])
+ @external_resource css_path = Path.join(@static_path, "app.css")
+ @external_resource js_path = Path.join(@static_path, "app.js")
- @css_path Application.app_dir(:error_tracker, ["priv", "static", "app.css"])
- @js_path Application.app_dir(:error_tracker, ["priv", "static", "app.js"])
+ @css File.read!(css_path)
- @external_resource @css_path
- @external_resource @js_path
+ @js """
+ #{for path <- phoenix_js_paths, do: path |> File.read!() |> String.replace("//# sourceMappingURL=", "// ")}
+ #{File.read!(js_path)}
+ """
- @css File.read!(@css_path)
- @js File.read!(@js_path)
+ @default_socket_config %{path: "/live", transport: :websocket}
embed_templates "layouts/*"
@@ -97,7 +106,7 @@ defmodule ErrorTracker.Web.Layouts do
class="whitespace-nowrap flex-0 block py-2 px-3 rounded-lg text-white hover:text-white hover:bg-gray-700 md:hover:bg-transparent md:border-0 md:hover:text-sky-500"
{@rest}
>
- <%= render_slot(@inner_block) %>
+ {render_slot(@inner_block)}
"""
diff --git a/lib/error_tracker/web/components/layouts/live.html.heex b/lib/error_tracker/web/components/layouts/live.html.heex
index b6b6845..a495577 100644
--- a/lib/error_tracker/web/components/layouts/live.html.heex
+++ b/lib/error_tracker/web/components/layouts/live.html.heex
@@ -1,4 +1,4 @@
<.navbar id="navbar" {assigns} />