Fix leptos 0.6 migration
This commit is contained in:
parent
ed6d446728
commit
deb8244597
4 changed files with 70 additions and 411 deletions
|
@ -11,42 +11,39 @@ use crate::app::{
|
|||
pub async fn get_posts(
|
||||
tag: Option<String>
|
||||
) -> Result<Vec<Post>, ServerFnError> {
|
||||
leptos_actix::extract(
|
||||
|data: actix_web::web::Data<crate::app::models::Data>| async move {
|
||||
let data = data.into_inner();
|
||||
let default = vec![];
|
||||
let posts = match tag {
|
||||
Some(tag) => data.posts_by_tag.get(&tag).unwrap_or(&default),
|
||||
None => &data.posts
|
||||
};
|
||||
posts.iter()
|
||||
.map(|post| {
|
||||
Post {
|
||||
metadata: post.metadata.clone(),
|
||||
content: post.content.clone(),
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>, >()
|
||||
},
|
||||
).await
|
||||
let data : actix_web::web::Data<crate::app::models::Data> = leptos_actix::extract().await?;
|
||||
let data = data.into_inner();
|
||||
|
||||
let default = vec![];
|
||||
let posts = match tag {
|
||||
Some(tag) => data.posts_by_tag.get(&tag).unwrap_or(&default),
|
||||
None => &data.posts
|
||||
};
|
||||
|
||||
Ok(
|
||||
posts.iter()
|
||||
.map(|post| {
|
||||
Post {
|
||||
metadata: post.metadata.clone(),
|
||||
content: post.content.clone(),
|
||||
}
|
||||
})
|
||||
.collect::<Vec<_>, >()
|
||||
)
|
||||
}
|
||||
|
||||
#[server]
|
||||
pub async fn get_post(
|
||||
slug: String
|
||||
) -> Result<Post, ServerFnError> {
|
||||
leptos_actix::extract(
|
||||
|data: actix_web::web::Data<crate::app::models::Data>| async move {
|
||||
let data = data.into_inner();
|
||||
data.posts_by_slug.get(&slug)
|
||||
.and_then(|post| Some(Post {
|
||||
metadata: post.metadata.clone(),
|
||||
content: post.content.clone(),
|
||||
}))
|
||||
},
|
||||
)
|
||||
.await
|
||||
.and_then(|post| post.ok_or_else(|| ServerFnError::ServerError("Post not found".to_string())))
|
||||
let data : actix_web::web::Data<crate::app::models::Data> = leptos_actix::extract().await?;
|
||||
let data = data.into_inner();
|
||||
|
||||
data.posts_by_slug.get(&slug).map(|post| Post {
|
||||
metadata: post.metadata.clone(),
|
||||
content: post.content.clone(),
|
||||
})
|
||||
.ok_or(ServerFnError::ServerError("Post not found".to_string()))
|
||||
}
|
||||
|
||||
#[component]
|
||||
|
@ -130,7 +127,7 @@ pub fn PostList() -> impl IntoView {
|
|||
};
|
||||
|
||||
let filter_view = move || {
|
||||
tag().and_then(|tag| Some(view! {
|
||||
tag().map(|tag| Some(view! {
|
||||
<div class="mx-auto max-w-3xl mb-5">
|
||||
Tag sélectionné : <A class="tag" href="/posts".to_string()>{tag}<leptos_icons::Icon icon=icondata::IoClose class="scale-125 ml-1 inline" /></A>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue