use_server_future was not reliably re-running when url_tag changed during direct URL navigation, causing tags to remain unselected. use_resource provides consistent reactivity across all navigation methods and handles both data fetching and selection logic atomically.
40 lines
650 B
Rust
40 lines
650 B
Rust
use std::collections::HashSet;
|
|
|
|
use dioxus::prelude::*;
|
|
|
|
use crate::components::{BlogList, TagSelector};
|
|
use crate::page::Page;
|
|
|
|
|
|
|
|
/// Blog page
|
|
#[component]
|
|
pub fn Blog(tag: ReadOnlySignal<String>) -> Element
|
|
{
|
|
let mut categories: Signal<HashSet<String>> =
|
|
use_signal(|| HashSet::new());
|
|
|
|
rsx!
|
|
{
|
|
main
|
|
{
|
|
class: "blog_style",
|
|
div
|
|
{
|
|
class: "page_content",
|
|
|
|
BlogList
|
|
{
|
|
tags: categories
|
|
}
|
|
|
|
TagSelector
|
|
{
|
|
url_tag: tag,
|
|
toggled_tags: categories
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|