Basic exam page
This commit is contained in:
1 parent
65991f742e
commit
632f0c341b
1 file changed
+48
@@ -0,0 +1,48 @@
|
|||||||
|
use iced::{Element, Task};
|
||||||
|
use crate::app::AppState;
|
||||||
|
use crate::data::entities::{EntityHandle, Exam, ExamEntry};
|
||||||
|
use crate::navigation::{NavigatedPage, Page, RootMessage};
|
||||||
|
use crate::navigation::Page::PreviousPage;
|
||||||
|
use crate::styling::back_overlay;
|
||||||
|
use iced::widget::{button, row, column, text};
|
||||||
|
use crate::pages::exam::ExamMessage::*;
|
||||||
|
|
||||||
|
pub struct ExamPage
|
||||||
|
{
|
||||||
|
pub id: EntityHandle<Exam>,
|
||||||
|
pub state: AppState,
|
||||||
|
pub entries : Vec<ExamEntry>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub enum ExamMessage {
|
||||||
|
Back,
|
||||||
|
Open,
|
||||||
|
Answer(bool)
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NavigatedPage<ExamMessage> for ExamPage {
|
||||||
|
fn navigate(&mut self, message: &ExamMessage) -> Option<Page> {
|
||||||
|
if let Back = message {
|
||||||
|
return Some(PreviousPage)
|
||||||
|
}
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
fn navigated(&mut self) {
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update(&mut self, message: ExamMessage) -> Task<RootMessage> {
|
||||||
|
match message {
|
||||||
|
Back => {}
|
||||||
|
Open => {}
|
||||||
|
Answer(answer) => {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn view(&self) -> Element<'_, ExamMessage> {
|
||||||
|
back_overlay(column![].into(), Back)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user