Add global logged in user Resource
This commit is contained in:
parent
43a5b519fd
commit
8ac3a87c58
16
src/app.rs
16
src/app.rs
@ -3,12 +3,16 @@ use crate::playbar::CustomTitle;
|
||||
use crate::playstatus::PlayStatus;
|
||||
use crate::queue::Queue;
|
||||
use leptos::*;
|
||||
use leptos::logging::*;
|
||||
use leptos_meta::*;
|
||||
use leptos_router::*;
|
||||
use crate::pages::login::*;
|
||||
use crate::pages::signup::*;
|
||||
use crate::error_template::{AppError, ErrorTemplate};
|
||||
use crate::auth::get_logged_in_user;
|
||||
use crate::models::User;
|
||||
|
||||
pub type LoggedInUserResource = Resource<(), Option<User>>;
|
||||
|
||||
#[component]
|
||||
pub fn App() -> impl IntoView {
|
||||
@ -19,6 +23,18 @@ pub fn App() -> impl IntoView {
|
||||
let play_status = create_rw_signal(play_status);
|
||||
let upload_open = create_rw_signal(false);
|
||||
|
||||
// A resource that fetches the logged in user
|
||||
// This will not automatically refetch, so any login/logout related code
|
||||
// should call `refetch` on this resource
|
||||
let logged_in_user: LoggedInUserResource = create_resource(|| (), |_| async {
|
||||
get_logged_in_user().await
|
||||
.inspect_err(|e| {
|
||||
error!("Error getting logged in user: {:?}", e);
|
||||
})
|
||||
.ok()
|
||||
.flatten()
|
||||
});
|
||||
|
||||
view! {
|
||||
// injects a stylesheet into the document <head>
|
||||
// id=leptos means cargo-leptos will hot-reload this stylesheet
|
||||
|
Loading…
x
Reference in New Issue
Block a user