@@ -7,52 +7,55 @@ defmodule ErrorTracker.Web.Live.Show do
77 alias ErrorTracker.Error
88 alias ErrorTracker.Occurrence
99 alias ErrorTracker.Repo
10+ alias ErrorTracker.Web.Search
1011
1112 @ occurrences_to_navigate 50
1213
1314 @ impl Phoenix.LiveView
14- def mount ( % { "id" => id } , _session , socket ) do
15+ def mount ( params = % { "id" => id } , _session , socket ) do
1516 error = Repo . get! ( Error , id )
16- { :ok , assign ( socket , error: error , app: Application . fetch_env! ( :error_tracker , :otp_app ) ) }
17+
18+ { :ok ,
19+ assign ( socket ,
20+ error: error ,
21+ app: Application . fetch_env! ( :error_tracker , :otp_app ) ,
22+ search: Search . from_params ( params )
23+ ) }
1724 end
1825
1926 @ impl Phoenix.LiveView
20- def handle_params ( % { "occurrence_id" => occurrence_id } , _uri , socket ) do
27+ def handle_params ( params , _uri , socket ) do
2128 occurrence =
22- socket . assigns . error
23- |> Ecto . assoc ( :occurrences )
24- |> Repo . get! ( occurrence_id )
25-
26- socket =
27- socket
28- |> assign ( :occurrence , occurrence )
29- |> load_related_occurrences ( )
30-
31- { :noreply , socket }
32- end
33-
34- def handle_params ( _ , _uri , socket ) do
35- [ occurrence ] =
36- socket . assigns . error
37- |> Ecto . assoc ( :occurrences )
38- |> order_by ( [ o ] , desc: o . id )
39- |> limit ( 1 )
40- |> Repo . all ( )
29+ if occurrence_id = params [ "occurrence_id" ] do
30+ socket . assigns . error
31+ |> Ecto . assoc ( :occurrences )
32+ |> Repo . get! ( occurrence_id )
33+ else
34+ socket . assigns . error
35+ |> Ecto . assoc ( :occurrences )
36+ |> order_by ( [ o ] , desc: o . id )
37+ |> limit ( 1 )
38+ |> Repo . one ( )
39+ end
4140
4241 socket =
4342 socket
44- |> assign ( : occurrence, occurrence )
43+ |> assign ( occurrence: occurrence )
4544 |> load_related_occurrences ( )
4645
4746 { :noreply , socket }
4847 end
4948
5049 @ impl Phoenix.LiveView
5150 def handle_event ( "occurrence_navigation" , % { "occurrence_id" => id } , socket ) do
52- { :noreply ,
53- push_patch ( socket ,
54- to: occurrence_path ( socket , % Occurrence { error_id: socket . assigns . error . id , id: id } )
55- ) }
51+ occurrence_path =
52+ occurrence_path (
53+ socket ,
54+ % Occurrence { error_id: socket . assigns . error . id , id: id } ,
55+ socket . assigns . search
56+ )
57+
58+ { :noreply , push_patch ( socket , to: occurrence_path ) }
5659 end
5760
5861 @ impl Phoenix.LiveView
0 commit comments