@@ -7,6 +7,7 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
77
88 require Logger
99
10+ alias LiveDebugger.API.SettingsStorage
1011 alias LiveDebugger.Client
1112 alias LiveDebugger.App.Utils.URL
1213 alias LiveDebugger.Structs.LvProcess
@@ -33,7 +34,6 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
3334 attr ( :id , :string , required: true )
3435 attr ( :socket , Phoenix.LiveView.Socket , required: true )
3536 attr ( :lv_process , LvProcess , required: true )
36- attr ( :root_socket_id , :string , required: true )
3737 attr ( :node_id , :any , required: true )
3838 attr ( :url , :string , required: true )
3939 attr ( :class , :string , default: "" , doc: "CSS class for the wrapper div" )
@@ -42,7 +42,6 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
4242 session = % {
4343 "lv_process" => assigns . lv_process ,
4444 "node_id" => assigns . node_id ,
45- "root_socket_id" => assigns . root_socket_id ,
4645 "url" => assigns . url ,
4746 "parent_pid" => self ( )
4847 }
@@ -68,10 +67,7 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
6867 |> assign ( lv_process: lv_process )
6968 |> assign ( parent_pid: parent_pid )
7069 |> assign ( node_id: session [ "node_id" ] )
71- |> assign ( root_socket_id: session [ "root_socket_id" ] )
7270 |> assign ( url: session [ "url" ] )
73- |> assign ( highlight?: false )
74- |> assign ( highlight_disabled?: ! lv_process . alive? )
7571 |> assign_async_tree ( )
7672 |> ok ( )
7773 end
@@ -89,14 +85,6 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
8985 < div class = "min-h-20 px-1 overflow-y-auto overflow-x-hidden flex flex-col " >
9086 < div class = "flex items-center justify-between " >
9187 < div class = "shrink-0 font-medium text-secondary-text px-6 py-3 " > Components Tree</ div >
92- < . toggle_switch
93- :if = { LiveDebugger.Feature . enabled? ( :browser_features? ) }
94- id = "highlight-switch "
95- label = "Highlight "
96- checked = { @ highlight? }
97- phx-click = "toggle-highlight "
98- disabled = { @ highlight_disabled? }
99- />
10088 </ div >
10189 < div class = "flex-1 " >
10290 < TreeComponents . tree_node
@@ -112,12 +100,6 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
112100 end
113101
114102 @ impl true
115- def handle_event ( "toggle-highlight" , _params , socket ) do
116- socket
117- |> update ( :highlight? , & ( not & 1 ) )
118- |> noreply ( )
119- end
120-
121103 def handle_event ( "highlight" , params , socket ) do
122104 socket
123105 |> highlight_element ( params )
@@ -128,7 +110,6 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
128110 socket
129111 |> pulse_element ( params )
130112 |> push_patch ( to: URL . upsert_query_param ( socket . assigns . url , "node_id" , node_id ) )
131- |> assign ( :highlight? , false )
132113 |> noreply ( )
133114 end
134115
@@ -165,58 +146,49 @@ defmodule LiveDebugger.App.Debugger.ComponentsTree.Web.ComponentsTreeLive do
165146 % { assigns: % { parent_pid: pid } } = socket
166147 ) do
167148 socket
168- |> assign ( highlight_disabled?: true )
169- |> assign ( highlight?: false )
149+ |> assign ( lv_process: socket . assigns . lv_process |> LvProcess . set_alive ( false ) )
170150 |> noreply ( )
171151 end
172152
153+ def handle_info ( _ , socket ) , do: { :noreply , socket }
154+
173155 defp assign_async_tree ( socket ) do
174156 pid = socket . assigns . lv_process . pid
175157 assign_async ( socket , [ :tree ] , fn -> ComponentsTreeQueries . fetch_components_tree ( pid ) end )
176158 end
177159
178- defp highlight_element (
179- % { assigns: % { highlight_disabled?: false , highlight?: true } } = socket ,
180- params
181- ) do
182- payload = % {
183- attr: params [ "search-attribute" ] ,
184- val: params [ "search-value" ] ,
185- type: if ( params [ "type" ] == "live_view" , do: "LiveView" , else: "LiveComponent" ) ,
186- module: Parsers . module_to_string ( params [ "module" ] ) ,
187- id_value: params [ "id" ] ,
188- id_key: if ( params [ "type" ] == "live_view" , do: "PID" , else: "CID" )
189- }
190-
191- Client . push_event! ( socket . assigns . root_socket_id , "highlight" , payload )
192-
193- socket
194- end
160+ defp highlight_element ( % { assigns: % { lv_process: % LvProcess { alive?: true } } } = socket , params ) do
161+ if SettingsStorage . get ( :highlight_in_browser ) do
162+ payload = % {
163+ attr: params [ "search-attribute" ] ,
164+ val: params [ "search-value" ] ,
165+ type: if ( params [ "type" ] == "live_view" , do: "LiveView" , else: "LiveComponent" ) ,
166+ module: Parsers . module_to_string ( params [ "module" ] ) ,
167+ id_value: params [ "id" ] ,
168+ id_key: if ( params [ "type" ] == "live_view" , do: "PID" , else: "CID" )
169+ }
195170
196- defp highlight_element ( socket , _ ) do
197- socket
198- end
171+ Client . push_event! ( socket . assigns . lv_process . root_socket_id , "highlight" , payload )
172+ end
199173
200- defp pulse_element ( % { assigns: % { highlight_disabled?: true } } = socket , _ ) do
201174 socket
202175 end
203176
204- defp pulse_element ( socket , params ) do
205- if LiveDebugger.Feature . enabled? ( :browser_features? ) do
206- # Resets the highlight when the user selects node
207- if socket . assigns . highlight? do
208- Client . push_event! ( socket . assigns . root_socket_id , "highlight" )
209- end
177+ defp highlight_element ( socket , _ ) , do: socket
210178
179+ defp pulse_element ( % { assigns: % { lv_process: % LvProcess { alive?: true } } } = socket , params ) do
180+ if SettingsStorage . get ( :highlight_in_browser ) do
211181 payload = % {
212182 attr: params [ "search-attribute" ] ,
213183 val: params [ "search-value" ] ,
214184 type: if ( params [ "type" ] == "live_view" , do: "LiveView" , else: "LiveComponent" )
215185 }
216186
217- Client . push_event! ( socket . assigns . root_socket_id , "pulse" , payload )
187+ Client . push_event! ( socket . assigns . lv_process . root_socket_id , "pulse" , payload )
218188 end
219189
220190 socket
221191 end
192+
193+ defp pulse_element ( socket , _ ) , do: socket
222194end
0 commit comments