Adding more reactive pieces to our components.

This commit is contained in:
2025-09-12 13:52:35 -04:00
parent d2b9982f15
commit bfbdb3d95f
6 changed files with 320 additions and 122 deletions

View File

@ -1,3 +1,5 @@
use std::collections::HashSet;
use dioxus::prelude::*;
use crate::components::BlogList;
@ -9,15 +11,30 @@ const BLOG_CSS: Asset = asset!("/assets/css/blog.css");
fn convert_categories(categories: &str) -> HashSet<String>
{
if categories.is_empty() || categories == "all"
{
HashSet::new()
}
else
{
categories.split('+').map(|s| s.to_string()).collect()
}
}
/// Blog page
#[component]
pub fn Blog(tag: String) -> Element
{
let mut categories: Vec<String> = vec![];
let mut categories: Signal<HashSet<String>> =
use_signal(|| convert_categories(&tag));
if !tag.is_empty() && tag != "all"
if *categories.read() != convert_categories(&tag)
{
categories.push(tag);
categories.set(convert_categories(&tag));
}
rsx! {
@ -29,6 +46,7 @@ pub fn Blog(tag: String) -> Element
div
{
class: "page_content",
BlogList
{
tags: categories