fix: context drawers on the search view
This commit is contained in:
parent
8af34ba9c4
commit
0dbc1e9bec
33 changed files with 209 additions and 57 deletions
|
|
@ -102,13 +102,15 @@ impl<Message: 'static> Binder<Message> {
|
|||
P::sub_pages(crate::Insert { id, model: self })
|
||||
}
|
||||
|
||||
pub fn register_page<P: Page<Message>>(&mut self, page: P) -> crate::Entity {
|
||||
pub fn register_page<P: Page<Message>>(&mut self, mut page: P) -> crate::Entity {
|
||||
let id = self.info.insert(page.info());
|
||||
|
||||
if let Some(content) = page.content(&mut self.sections) {
|
||||
self.content.insert(id, content);
|
||||
}
|
||||
|
||||
page.set_id(id);
|
||||
|
||||
self.page.insert(id, Box::new(page));
|
||||
|
||||
id
|
||||
|
|
@ -172,7 +174,7 @@ impl<Message: 'static> Binder<Message> {
|
|||
sender: tokio::sync::mpsc::Sender<Message>,
|
||||
) -> Task<Message> {
|
||||
if let Some(page) = self.page.get_mut(id) {
|
||||
return page.on_enter(id, sender);
|
||||
return page.on_enter(sender);
|
||||
}
|
||||
|
||||
Task::none()
|
||||
|
|
|
|||
|
|
@ -65,11 +65,7 @@ pub trait Page<Message: 'static>: Downcast {
|
|||
|
||||
/// Reload page metadata via a Task.
|
||||
#[allow(unused)]
|
||||
fn on_enter(
|
||||
&mut self,
|
||||
page: crate::Entity,
|
||||
sender: tokio::sync::mpsc::Sender<Message>,
|
||||
) -> Task<Message> {
|
||||
fn on_enter(&mut self, sender: tokio::sync::mpsc::Sender<Message>) -> Task<Message> {
|
||||
Task::none()
|
||||
}
|
||||
|
||||
|
|
@ -78,6 +74,9 @@ pub trait Page<Message: 'static>: Downcast {
|
|||
Task::none()
|
||||
}
|
||||
|
||||
/// Assigns the entity ID of the page to the page.
|
||||
fn set_id(&mut self, entity: Entity) {}
|
||||
|
||||
/// The title to display in the page header.
|
||||
fn title(&self) -> Option<&str> {
|
||||
None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue