yew_oauth2/components/
failure.rs1use super::missing_context;
4use crate::context::OAuth2Context;
5use yew::prelude::*;
6
7#[derive(Clone, Debug, PartialEq, Properties)]
9pub struct FailureProps {
10 #[prop_or_default]
11 pub id: Option<String>,
12 #[prop_or_default]
13 pub style: Option<String>,
14 #[prop_or_default]
15 pub class: Option<String>,
16 #[prop_or_default]
17 pub element: Option<String>,
18 #[prop_or_default]
19 pub children: Children,
20}
21
22#[function_component(Failure)]
23pub fn failure(props: &FailureProps) -> Html {
24 let auth = use_context::<OAuth2Context>();
25
26 let element = props.element.as_deref().unwrap_or("div").to_string();
27
28 match auth {
29 None => missing_context(),
30 Some(OAuth2Context::Failed(..)) => {
31 html!(
32 <@{element}
33 id={ props.id.clone() }
34 style={ props.style.clone() }
35 class={ &props.class }
36 >
37 { for props.children.iter() }
38 </@>
39 )
40 }
41 Some(_) => html!(),
42 }
43}
44
45#[derive(Clone, Debug, PartialEq, Eq, Properties)]
46pub struct FailureMessageProps {
47 #[prop_or_default]
48 pub id: Option<String>,
49 #[prop_or_default]
50 pub style: Option<String>,
51 #[prop_or_default]
52 pub class: Option<String>,
53 #[prop_or_default]
54 pub element: Option<String>,
55}
56
57#[function_component(FailureMessage)]
58pub fn failure_message(props: &FailureMessageProps) -> Html {
59 let auth = use_context::<OAuth2Context>();
60
61 let element = props.element.as_deref().unwrap_or("span").to_string();
62
63 match auth {
64 None => missing_context(),
65 Some(OAuth2Context::Failed(message)) => {
66 html!(
67 <@{element}
68 id={ props.id.clone() }
69 style={ props.style.clone() }
70 class={ &props.class }
71 >
72 { message }
73 </@>
74 )
75 }
76 Some(_) => html!(),
77 }
78}