Przeglądaj źródła

app/wallet: update send_step4 to use the new tx_status

x 2 tygodni temu
rodzic
commit
7d0fbea819
1 zmienionych plików z 33 dodań i 4 usunięć
  1. 33 4
      bin/app/src/app/schema/wallet/send_step4.rs

+ 33 - 4
bin/app/src/app/schema/wallet/send_step4.rs

@@ -464,12 +464,13 @@ pub async fn make(
                             drk_node.call_method("get_tx_status", tx_id_data).await
                         {
                             let mut cur = std::io::Cursor::new(data);
-                            if let Ok(status_text) = String::decode(&mut cur) {
-                                if let Some(tx_status) = sg_root
-                                    .lookup_node("/window/content/wallet/tx_status_layer/status")
+                            if let Ok(confirmed) = bool::decode(&mut cur) {
+                                if let Some(tx_status) =
+                                    sg_root.lookup_node("/window/content/wallet/tx_status_layer")
                                 {
+                                    let status = if confirmed { "confirmed" } else { "confirming" };
                                     tx_status
-                                        .set_property_str(atom, Role::App, "text", status_text)
+                                        .set_property_enum(atom, Role::App, "tx_status", status)
                                         .unwrap();
                                 }
                             }
@@ -504,6 +505,17 @@ pub async fn make(
                 }
 
                 let atom = &mut redraw_clone.make_guard(gfxtag!("update step4 amount positions"));
+
+                // Reset the tx status screen
+                if let Some(tx_status_layer) =
+                    sg_root.lookup_node("/window/content/wallet/tx_status_layer")
+                {
+                    tx_status_layer
+                        .set_property_enum(atom, Role::App, "tx_status", "confirming")
+                        .unwrap();
+                    tx_status_layer.set_property_str(atom, Role::App, "tx_id", "").unwrap();
+                }
+
                 let data = send_tx_data_clone2.lock().unwrap().clone();
 
                 let token_symbol = data.token_symbol.unwrap_or_else(|| "".to_string());
@@ -552,6 +564,23 @@ pub async fn make(
                         prop.set_f32(atom, Role::App, 3, 0.).unwrap();
                     }
                 }
+            } else {
+                // Reset the send button
+                let atom = &mut redraw_clone.make_guard(gfxtag!("reset step4 send button"));
+                if let Some(send_layer_node) =
+                    sg_root.lookup_node("/window/content/wallet/send_step4_layer/send_btn_layer")
+                {
+                    send_layer_node
+                        .set_property_bool(atom, Role::App, "is_visible", false)
+                        .unwrap();
+                }
+                if let Some(send_layer_grey_node) = sg_root
+                    .lookup_node("/window/content/wallet/send_step4_layer/send_btn_layer_grey")
+                {
+                    send_layer_grey_node
+                        .set_property_bool(atom, Role::App, "is_visible", true)
+                        .unwrap();
+                }
             }
         }
     });