diff --git a/lib/music_library_web/components/layouts.ex b/lib/music_library_web/components/layouts.ex
index 08fbaeaa..89d52902 100644
--- a/lib/music_library_web/components/layouts.ex
+++ b/lib/music_library_web/components/layouts.ex
@@ -10,7 +10,7 @@ defmodule MusicLibraryWeb.Layouts do
"""
use MusicLibraryWeb, :html
- alias Phoenix.LiveView.ColocatedHook
+ import MusicLibraryWeb.UniversalSearchLive.Index, only: [universal_search_trigger: 1]
embed_templates "layouts/*"
diff --git a/lib/music_library_web/components/layouts/app.html.heex b/lib/music_library_web/components/layouts/app.html.heex
index 7fc9d765..5dea12ca 100644
--- a/lib/music_library_web/components/layouts/app.html.heex
+++ b/lib/music_library_web/components/layouts/app.html.heex
@@ -38,37 +38,7 @@
-
- <.button
- id="universal-search-button"
- variant="ghost"
- title={gettext("Search (Ctrl+K)")}
- phx-click="open_modal"
- phx-target="#universal-search"
- phx-hook=".SearchGlobalShortcut"
- >
- {gettext("Search (Ctrl+K)")}
- <.icon name="hero-magnifying-glass" class="h-5 w-5" />
-
+ <.universal_search_trigger />
<.dropdown placement="bottom-end">
<:toggle>
-
- {live_render(@socket, MusicLibraryWeb.UniversalSearchLive.Index,
- id: "universal-search",
- session: %{}
- )}
-
+{MusicLibraryWeb.UniversalSearchLive.Index.live(@socket)}
diff --git a/lib/music_library_web/live/universal_search_live/index.ex b/lib/music_library_web/live/universal_search_live/index.ex
index e182bfc3..6ab8b3e4 100644
--- a/lib/music_library_web/live/universal_search_live/index.ex
+++ b/lib/music_library_web/live/universal_search_live/index.ex
@@ -4,6 +4,47 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do
import MusicLibraryWeb.SearchComponents
alias MusicLibrary.Search
+ alias Phoenix.LiveView.ColocatedHook
+
+ def live(socket) do
+ live_render(socket, __MODULE__, id: "universal-search", session: %{})
+ end
+
+ def universal_search_trigger(assigns) do
+ ~H"""
+
+ <.button
+ id="universal-search-button"
+ variant="ghost"
+ title={gettext("Search (Ctrl+K)")}
+ phx-click="open_modal"
+ phx-target="#universal-search"
+ phx-hook=".SearchGlobalShortcut"
+ >
+ {gettext("Search (Ctrl+K)")}
+ <.icon name="hero-magnifying-glass" class="h-5 w-5" />
+
+ """
+ end
@impl true
def mount(_params, _session, socket) do
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 7711887d..87d0465b 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -1135,7 +1135,7 @@ msgstr[1] ""
msgid "Close"
msgstr ""
-#: lib/music_library_web/components/layouts/app.html.heex
+#: lib/music_library_web/live/universal_search_live/index.ex
#, elixir-autogen, elixir-format
msgid "Search (Ctrl+K)"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index b233c98a..2dac55f2 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -1135,7 +1135,7 @@ msgstr[1] ""
msgid "Close"
msgstr ""
-#: lib/music_library_web/components/layouts/app.html.heex
+#: lib/music_library_web/live/universal_search_live/index.ex
#, elixir-autogen, elixir-format
msgid "Search (Ctrl+K)"
msgstr ""