use leptos::*;
use leptos_meta::*;
use reqwest::Client;
use serde::Serialize;
#[derive(Serialize)]
struct Params {
command: String,
shadeId: i32,
}
#[component]
pub fn Shutters() -> impl IntoView {
view! {
}
}
#[component]
pub fn Shutter(name: String, shade_id: i32) -> impl IntoView {
let (response, set_response) = create_signal(None::);
let move_up = create_action(move |_| async move {
let client = Client::new();
let params = Params {
command: "up".to_string(),
shadeId: shade_id,
};
let url = "http://192.168.3.34/shadeCommand";
match client.put(url).json(¶ms).send().await {
Ok(resp) => {
let text = resp.text().await.unwrap_or("Réponse vide".to_string());
set_response.set(Some(text));
}
Err(e) => {
set_response.set(Some(format!("Erreur: {:?}", e)));
}
}
});
let move_my = create_action(move |_| async move {
let client = Client::new();
let params = Params {
command: "my".to_string(),
shadeId: shade_id,
};
let url = "http://192.168.3.34/shadeCommand";
match client.put(url).json(¶ms).send().await {
Ok(resp) => {
let text = resp.text().await.unwrap_or("Réponse vide".to_string());
set_response.set(Some(text));
}
Err(e) => {
set_response.set(Some(format!("Erreur: {:?}", e)));
}
}
});
let move_down = create_action(move |_| async move {
let client = Client::new();
let params = Params {
command: "down".to_string(),
shadeId: shade_id,
};
let url = "http://192.168.3.34/shadeCommand";
match client.put(url).json(¶ms).send().await {
Ok(resp) => {
let text = resp.text().await.unwrap_or("Réponse vide".to_string());
set_response.set(Some(text));
}
Err(e) => {
set_response.set(Some(format!("Erreur: {:?}", e)));
}
}
});
view! {
}
}
#[component]
pub fn Arrow(class: String) -> impl IntoView {
view! {
}
}