async solve, now to fix list updating

This commit is contained in:
2026-03-29 20:16:09 -04:00
parent b1ab165665
commit 44959589f8
8 changed files with 264 additions and 245 deletions
+21 -20
View File
@@ -1,28 +1,29 @@
use crate::components::{MediaGrid, Pagination, Search};
use dioxus::prelude::*;
#[component]
pub fn Home() -> Element
{
let query = use_signal(|| "".to_string());
let page = use_signal(|| 1 as i32);
let max_page = use_signal(|| 1 as i32);
let item_count = use_signal(|| 0 as i32);
rsx! {
div {
class: "stickyTop",
Search { query, page },
Pagination { page, max_page, item_count },
}
MediaGrid { query: query.cloned(), page: page.cloned(), max_page, total_items: item_count }
}
}
// #[component]
// pub fn Home() -> Element
// {
// let query = use_signal(|| "".to_string());
// let page = use_signal(|| 1 as i32);
// let max_page = use_signal(|| 1 as i32);
// let item_count = use_signal(|| 0 as i32);
// rsx! {
// div {
// class: "stickyTop",
// Search { query, page },
// Pagination { page, max_page, item_count },
// }
// MediaGrid { query: query.cloned(), page: page.cloned(), max_page, total_items: item_count }
// }
// }
#[component]
pub fn HomePaged(page: i32, q: String) -> Element
pub fn Home(page: Option<i32>, q: Option<String>) -> Element
{
let query = use_signal(|| q);
let page = use_signal(|| page);
let query = use_signal(|| q.unwrap_or("".to_string()));
let page = use_signal(|| page.unwrap_or(1));
let page_size = use_signal::<i32>(|| 100);
let max_page = use_signal(|| 1 as i32);
let item_count = use_signal(|| 0 as i32);
rsx! {
@@ -31,6 +32,6 @@ pub fn HomePaged(page: i32, q: String) -> Element
Search { query, page },
Pagination { page, max_page, item_count },
}
MediaGrid { query: query.cloned(), page: page.cloned(), max_page, total_items: item_count }
MediaGrid { query: query, page: page, max_page, total_items: item_count, page_size }
}
}
+3 -3
View File
@@ -39,16 +39,16 @@ fn MediaPage(media: MediaModel) -> Element
{
let url = media.thumb_url;
let id = media.id.expect("Media has no id").value.clone();
let cur_class = match media.class
let cur_class = use_signal(|| match media.class
{
0 => "Standard",
1 => "NSFW",
2 => "Secret",
_ => "Unkown",
};
});
rsx! {
img { src: "{HOST}{url}", }
label { "Media Class: {cur_class}" }
label { "Media Class: {cur_class()}" }
}
}