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