Removed the context and went to just Signals.
This commit is contained in:
@ -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"
|
||||
|
||||
@ -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 {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user