@@ -4,6 +4,8 @@ defmodule AsciinemaWeb.StreamStatusLive do
4
4
alias AsciinemaWeb.MediumHTML
5
5
use AsciinemaWeb , :live_view
6
6
7
+ defdelegate env_info ( stream ) , to: MediumHTML
8
+
7
9
@ info_timeout 1_000
8
10
@ duration_update_interval 60_000
9
11
@@ -23,8 +25,8 @@ defmodule AsciinemaWeb.StreamStatusLive do
23
25
<% end %>
24
26
</ span >
25
27
26
- < span :if = { @ metadata } class = "status-line-item " title = " Terminal environment ">
27
- < . terminal_solid_icon /> { @ metadata }
28
+ < span class = "status-line-item " >
29
+ < . terminal_solid_icon /> < . env_info attrs = { @ env_info_attrs } />
28
30
</ span >
29
31
30
32
< span class = "status-line-item " >
@@ -62,7 +64,7 @@ defmodule AsciinemaWeb.StreamStatusLive do
62
64
started_at: stream . last_started_at ,
63
65
duration: nil ,
64
66
viewer_count: stream . current_viewer_count ,
65
- metadata: MediumHTML . metadata ( stream )
67
+ env_info_attrs: env_info_attrs ( stream )
66
68
)
67
69
|> update_duration ( )
68
70
@@ -96,7 +98,7 @@ defmodule AsciinemaWeb.StreamStatusLive do
96
98
end
97
99
98
100
def handle_info ( % StreamServer.Update { event: :metadata , data: stream } , socket ) do
99
- { :noreply , assign ( socket , metadata: MediumHTML . metadata ( stream ) ) }
101
+ { :noreply , assign ( socket , :env_info_attrs , env_info_attrs ( stream ) ) }
100
102
end
101
103
102
104
def handle_info ( % ViewerTracker.Update { viewer_count: c } , socket ) do
@@ -107,6 +109,9 @@ defmodule AsciinemaWeb.StreamStatusLive do
107
109
{ :noreply , update_duration ( socket ) }
108
110
end
109
111
112
+ defp env_info_attrs ( stream ) ,
113
+ do: Map . take ( stream , [ :user_agent , :term_type , :term_version , :shell ] )
114
+
110
115
defp update_duration ( socket ) do
111
116
socket = assign ( socket , :duration , format_duration ( socket . assigns . started_at ) )
112
117
0 commit comments