Removed the context and went to just Signals.

This commit is contained in:
2025-09-12 21:13:41 -04:00
parent 1fc3f718bf
commit 1bb4386010
2 changed files with 19 additions and 22 deletions

View File

@ -1,6 +1,6 @@
[package]
name = "bard"
version = "0.0.21"
version = "0.0.22"
edition = "2024"
description = "Dioxus components that will display a Tavern blogging system Blog."
repository = "/CyberMages/tavern"

View File

@ -243,7 +243,7 @@ pub fn BlogList(tags: Signal<HashSet<String>>, children: Element) -> Element
#[component]
pub fn TagSelector(toggled_tags: Signal<HashSet<String>>) -> Element
{
let mut categories = use_signal(Vec::<String>::new);
let mut categories = use_signal(|| Vec::<String>::new());
let tags = use_server_future(move || async move { get_tags().await })?;
@ -304,13 +304,10 @@ pub fn TagSelector(toggled_tags: Signal<HashSet<String>>) -> Element
}
#[component]
pub fn PostHeaderAuthor() -> Element
pub fn PostHeaderAuthor(adventurer: Signal<Option<Adventurer>>) -> Element
{
let author: Signal<Option<Adventurer>> =
use_context::<Signal<Option<Adventurer>>>();
rsx! {
match author()
match adventurer()
{
Some(author) =>
{
@ -333,11 +330,9 @@ pub fn PostHeaderAuthor() -> Element
}
#[component]
pub fn PostHeader() -> Element
pub fn PostHeader(tale: Signal<Option<Tale>>,
adventurer: Signal<Option<Adventurer>>) -> Element
{
let tale: Signal<Option<Tale>> = use_context::<Signal<Option<Tale>>>();
let adventurer = use_context::<Signal<Option<Adventurer>>>();
let converted_tags = use_memo(move || {
tale().as_ref()
.map(|t| {
@ -380,9 +375,9 @@ pub fn PostHeader() -> Element
match adventurer()
{
Some(author) =>
Some(_) =>
{
rsx! { PostHeaderAuthor {} }
rsx! { PostHeaderAuthor { adventurer: adventurer } }
}
None =>
@ -396,18 +391,19 @@ pub fn PostHeader() -> Element
#[component]
pub fn BlogPost(slug: Signal<String>, children: Element) -> Element
{
// The tale depends on the post future resolving.
let mut tale: Signal<Option<Tale>> = use_signal(|| None);
let mut adventurer = use_signal(|| None);
// Run a once off server fetch of the unchanging blog data.
let post = use_server_future(move || {
let post = use_server_future(move ||
{
// Make this reactive so that as the page changes it should rerun this.
let url_slug = slug();
async move { get_blog_post(url_slug).await }
})?;
// The tale depends on the post future resolving.
let mut tale: Signal<Option<Tale>> = use_signal(|| None);
use_context_provider(|| tale);
let author = use_server_future(move || {
let handle = match tale()
{
@ -419,9 +415,6 @@ pub fn BlogPost(slug: Signal<String>, children: Element) -> Element
async move { get_author(handle).await }
})?;
let mut adventurer = use_signal(|| None);
use_context_provider(|| adventurer);
use_effect(move || {
if let Some(Ok(data)) = &*post.read()
{
@ -450,7 +443,11 @@ pub fn BlogPost(slug: Signal<String>, children: Element) -> Element
{
rsx!
{
PostHeader {}
PostHeader
{
tale: tale,
adventurer: adventurer
}
//Story {}