yew_oauth2/
hook.rs

1//! Hooks for Yew
2
3use crate::{context::LatestAccessToken, prelude::OAuth2Context};
4use yew::prelude::*;
5
6#[cfg(feature = "openid")]
7pub mod openid {
8    pub use crate::agent::client::OpenIdClient as Client;
9
10    #[yew::hook]
11    pub fn use_auth_agent() -> Option<crate::components::context::Agent<Client>> {
12        crate::components::context::use_auth_agent::<Client>()
13    }
14}
15
16pub mod oauth2 {
17    pub use crate::agent::client::OAuth2Client as Client;
18
19    #[yew::hook]
20    pub fn use_auth_agent() -> Option<crate::components::context::Agent<Client>> {
21        crate::components::context::use_auth_agent::<Client>()
22    }
23}
24
25/// Get the authentication state.
26#[hook]
27pub fn use_auth_state() -> Option<OAuth2Context> {
28    use_context()
29}
30
31/// Get a handle to retrieve the latest access token
32#[hook]
33pub fn use_latest_access_token() -> Option<LatestAccessToken> {
34    use_context()
35}