Skip to content

Commit 095e67b

Browse files
authored
Bug: navbar menu dropdown fix (#870)
* add dropdown id
1 parent 5c92fcc commit 095e67b

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

lib/live_debugger/app/debugger/callback_tracing/web/global_traces_live.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ defmodule LiveDebugger.App.Debugger.CallbackTracing.Web.GlobalTracesLive do
123123
return_link={@return_link}
124124
inspect_mode?={@inspect_mode?}
125125
lv_process={@lv_process}
126+
dropdown_id="global-traces"
126127
/>
127128
<div class="grow p-8 overflow-y-auto scrollbar-main">
128129
<div class="w-full min-w-[25rem] max-w-screen-2xl mx-auto">

lib/live_debugger/app/debugger/web/components/navigation_menu.ex

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ defmodule LiveDebugger.App.Debugger.Web.Components.NavigationMenu do
1010
alias Phoenix.LiveView.JS
1111

1212
attr(:class, :any, default: nil, doc: "Additional classes to add to the navigation bar.")
13-
attr(:current_url, :any, required: true)
14-
attr(:return_link, :any, required: true, doc: "Link to navigate to.")
13+
attr(:current_url, :string, required: true)
14+
attr(:return_link, :string, required: true, doc: "Link to navigate to.")
15+
attr(:dropdown_id, :string, required: true)
1516

1617
slot(:inspect_button)
1718

@@ -46,7 +47,12 @@ defmodule LiveDebugger.App.Debugger.Web.Components.NavigationMenu do
4647
/>
4748
</div>
4849
49-
<.dropdown return_link={@return_link} current_url={@current_url} class="sm:hidden" />
50+
<.dropdown
51+
return_link={@return_link}
52+
current_url={@current_url}
53+
class="sm:hidden"
54+
id={@dropdown_id}
55+
/>
5056
5157
<div id="hidden-items" class="hidden sm:flex flex-row gap-3">
5258
<.navbar_item
@@ -64,6 +70,7 @@ defmodule LiveDebugger.App.Debugger.Web.Components.NavigationMenu do
6470
attr(:class, :any, default: nil, doc: "Additional classes to add to the navigation bar.")
6571
attr(:return_link, :any, required: true, doc: "Link to navigate to.")
6672
attr(:current_url, :any, required: true)
73+
attr(:id, :string, required: true)
6774

6875
def dropdown(assigns) do
6976
assigns =
@@ -75,7 +82,7 @@ defmodule LiveDebugger.App.Debugger.Web.Components.NavigationMenu do
7582
~H"""
7683
<.live_component
7784
module={LiveDropdown}
78-
id="navigation-bar-dropdown"
85+
id={"#{@id}-navigation-bar-dropdown"}
7986
class={@class}
8087
direction={:bottom_left}
8188
>
@@ -96,7 +103,7 @@ defmodule LiveDebugger.App.Debugger.Web.Components.NavigationMenu do
96103
icon="icon-chart-line"
97104
label="Resources"
98105
selected?={@current_view == "resources"}
99-
phx-click={dropdown_item_click(RoutesHelper.debugger_resources(@pid))}
106+
phx-click={dropdown_item_click(RoutesHelper.debugger_resources(@pid), @id)}
100107
/>
101108
</div>
102109
</.live_component>
@@ -124,10 +131,10 @@ defmodule LiveDebugger.App.Debugger.Web.Components.NavigationMenu do
124131
end
125132

126133
# We do it to make sure that the dropdown is closed when the item is clicked.
127-
defp dropdown_item_click(url) do
134+
defp dropdown_item_click(url, id) do
128135
url
129136
|> JS.patch()
130-
|> JS.push("close", target: "#navigation-bar-dropdown-live-dropdown-container")
137+
|> JS.push("close", target: "##{id}-navigation-bar-dropdown-live-dropdown-container")
131138
end
132139

133140
attr(:id, :string, required: true)

lib/live_debugger/app/debugger/web/components/pages.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ defmodule LiveDebugger.App.Debugger.Web.Components.Pages do
4444
return_link={@return_link}
4545
inspect_mode?={@inspect_mode?}
4646
lv_process={@lv_process}
47+
dropdown_id="node-inspector"
4748
/>
4849
4950
<div class="flex flex-col max-w-screen-2xl w-full gap-4 p-8 overflow-y-auto">
@@ -144,6 +145,7 @@ defmodule LiveDebugger.App.Debugger.Web.Components.Pages do
144145
return_link={@return_link}
145146
inspect_mode?={@inspect_mode?}
146147
lv_process={@lv_process}
148+
dropdown_id="resources"
147149
/>
148150
149151
<ResourcesLive.live_render
@@ -160,13 +162,15 @@ defmodule LiveDebugger.App.Debugger.Web.Components.Pages do
160162
attr(:return_link, :string, required: true)
161163
attr(:inspect_mode?, :boolean, required: true)
162164
attr(:lv_process, LvProcess, required: true)
165+
attr(:dropdown_id, :string, required: true)
163166

164167
def navbar_menu(assigns) do
165168
~H"""
166169
<NavigationMenu.navbar
167170
class="w-full border-b margin-0"
168171
current_url={@url}
169172
return_link={@return_link}
173+
dropdown_id={@dropdown_id}
170174
>
171175
<:inspect_button>
172176
<HookComponents.InspectButton.render inspect_mode?={@inspect_mode?} lv_process={@lv_process} />

0 commit comments

Comments
 (0)