mentorenwahl/frontend/src/routes/home/teacher_home.rs

54 lines
1.3 KiB
Rust

use yew::prelude::*;
use yew_agent::{Bridge, Bridged};
use crate::agents;
use crate::routes::home::teacher_registration;
pub enum Msg {
Registered,
}
#[derive(Properties, PartialEq)]
pub struct TeacherHomeProps {
pub token: String,
pub registered: bool,
}
pub struct TeacherHome {
registered: bool,
_teacher_registered_producer: Box<dyn Bridge<agents::teacher_registered::EventBus>>,
}
impl Component for TeacherHome {
type Message = Msg;
type Properties = TeacherHomeProps;
fn create(ctx: &Context<Self>) -> Self {
Self {
registered: ctx.props().registered,
_teacher_registered_producer: agents::teacher_registered::EventBus::bridge(
ctx.link().callback(|_| Msg::Registered),
),
}
}
fn update(&mut self, _ctx: &Context<Self>, msg: Self::Message) -> bool {
match msg {
Msg::Registered => {
self.registered = true;
true
}
}
}
fn view(&self, ctx: &Context<Self>) -> Html {
html! {
if self.registered {
<p>{ "Alles in Ordnung." }</p>
} else {
<teacher_registration::TeacherRegistration token={ctx.props().token.to_owned()} />
}
}
}
}