@@ -132,12 +132,14 @@ impl View {
132132 // mutate the currently selected view.
133133 match event {
134134 key ! ( Enter ) => {
135- if let Some ( task) = self . tasks_list . selected_item ( ) . upgrade ( ) {
136- update_kind = UpdateKind :: SelectTask ( task. borrow ( ) . span_id ( ) ) ;
137- self . state = TaskInstance ( self :: task:: TaskView :: new (
138- task,
139- state. task_details_ref ( ) ,
140- ) ) ;
135+ if let Some ( task_weak) = self . tasks_list . selected_item ( ) {
136+ if let Some ( task) = task_weak. upgrade ( ) {
137+ update_kind = UpdateKind :: SelectTask ( task. borrow ( ) . span_id ( ) ) ;
138+ self . state = TaskInstance ( self :: task:: TaskView :: new (
139+ task,
140+ state. task_details_ref ( ) ,
141+ ) ) ;
142+ }
141143 }
142144 }
143145 _ => {
@@ -149,9 +151,12 @@ impl View {
149151 ResourcesList => {
150152 match event {
151153 key ! ( Enter ) => {
152- if let Some ( res) = self . resources_list . selected_item ( ) . upgrade ( ) {
153- update_kind = UpdateKind :: SelectResource ( res. borrow ( ) . span_id ( ) ) ;
154- self . state = ResourceInstance ( self :: resource:: ResourceView :: new ( res) ) ;
154+ if let Some ( res_weak) = self . resources_list . selected_item ( ) {
155+ if let Some ( res) = res_weak. upgrade ( ) {
156+ update_kind = UpdateKind :: SelectResource ( res. borrow ( ) . span_id ( ) ) ;
157+ self . state =
158+ ResourceInstance ( self :: resource:: ResourceView :: new ( res) ) ;
159+ }
155160 }
156161 }
157162 _ => {
@@ -169,21 +174,24 @@ impl View {
169174 update_kind = UpdateKind :: Other ;
170175 }
171176 key ! ( Enter ) => {
172- if let Some ( op) = view. async_ops_table . selected_item ( ) . upgrade ( ) {
173- if let Some ( task_id) = op. borrow ( ) . task_id ( ) {
174- let task = self
175- . tasks_list
176- . sorted_items
177- . iter ( )
178- . filter_map ( |i| i. upgrade ( ) )
179- . find ( |t| task_id == t. borrow ( ) . id ( ) ) ;
177+ if let Some ( op_weak) = view. async_ops_table . selected_item ( ) {
178+ if let Some ( op) = op_weak. upgrade ( ) {
179+ if let Some ( task_id) = op. borrow ( ) . task_id ( ) {
180+ let task = self
181+ . tasks_list
182+ . sorted_items
183+ . iter ( )
184+ . filter_map ( |i| i. upgrade ( ) )
185+ . find ( |t| task_id == t. borrow ( ) . id ( ) ) ;
180186
181- if let Some ( task) = task {
182- update_kind = UpdateKind :: SelectTask ( task. borrow ( ) . span_id ( ) ) ;
183- self . state = TaskInstance ( self :: task:: TaskView :: new (
184- task,
185- state. task_details_ref ( ) ,
186- ) ) ;
187+ if let Some ( task) = task {
188+ update_kind =
189+ UpdateKind :: SelectTask ( task. borrow ( ) . span_id ( ) ) ;
190+ self . state = TaskInstance ( self :: task:: TaskView :: new (
191+ task,
192+ state. task_details_ref ( ) ,
193+ ) ) ;
194+ }
187195 }
188196 }
189197 }
0 commit comments