58 lines
1.3 KiB
Rust
58 lines
1.3 KiB
Rust
use crate::{AppState, NavigatedPage, Page, RootMessage};
|
|||
|
|
use iced::widget::*;
|
||
|
|
use iced::{Element, Fill, Left, Task};
|
||
|
|
use std::sync::{Arc, Mutex};
|
||
|
|
use HistoryMessage::Back;
|
||
|
|
|
||
|
|
#[derive(Clone)]
|
||
|
|
pub struct HistoryState {
|
||
|
|
set_id: u32,
|
||
|
|
list: Vec<HistoryItem>
|
||
|
|
}
|
||
|
|
|
||
|
|
impl NavigatedPage<HistoryMessage> for HistoryState {
|
||
|
|
fn navigate(&self, message: &HistoryMessage) -> Option<Page> {
|
||
|
|
match message {
|
||
|
|
Back => Some(Page::PreviousPage),
|
||
|
|
_ => None,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
impl HistoryState {
|
||
|
|
pub fn new(id: u32, state: Arc<Mutex<AppState>>) -> Self {
|
||
|
|
Self { set_id: id, list: vec![] }
|
||
|
|
}
|
||
|
|
|
||
|
|
pub fn update(&mut self, message: HistoryMessage) -> Task<RootMessage> {
|
||
|
|
Task::none()
|
||
|
|
}
|
||
|
|
|
||
|
|
pub fn view(&self) -> Element<'_, HistoryMessage> {
|
||
|
|
container(
|
||
|
|
iced::widget::column![
|
||
|
|
button("Назад").on_press(HistoryMessage::Back),
|
||
|
|
// column![
|
||
|
|
//
|
||
|
|
// ]
|
||
|
|
// .height(Fill)
|
||
|
|
// .width(Fill)
|
||
|
|
]
|
||
|
|
.align_x(Left)
|
||
|
|
.width(Fill),
|
||
|
|
)
|
||
|
|
.center_x(Fill)
|
||
|
|
.padding(10)
|
||
|
|
.into()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Clone)]
|
||
|
|
pub enum HistoryMessage {
|
||
|
|
Back,
|
||
|
|
}
|
||
|
|
|
||
|
|
#[derive(Clone)]
|
||
|
|
pub struct HistoryItem{
|
||
|
|
|
||
|
|
}
|