[yew-devel] [PATCH yew-widget-toolkit 05/11] touch: material app: allow pass through of page animation style
Dominik Csapak
d.csapak at proxmox.com
Fri Jun 27 14:08:53 CEST 2025
to the page stack. Otherwise it's impossible to set the animation style
for a material app.
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
src/touch/material_app.rs | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/touch/material_app.rs b/src/touch/material_app.rs
index d9ea2a0..6d7ac54 100644
--- a/src/touch/material_app.rs
+++ b/src/touch/material_app.rs
@@ -13,7 +13,7 @@ use pwt_macros::builder;
use crate::prelude::*;
use crate::state::{NavigationContainer, SharedState, SharedStateObserver};
-use crate::touch::{SnackBarController, SnackBarManager};
+use crate::touch::{PageAnimationStyle, SnackBarController, SnackBarManager};
use crate::widget::{Container, ThemeLoader};
use super::{PageStack, SideDialog, SideDialogController, SideDialogLocation};
@@ -207,6 +207,11 @@ pub struct MaterialApp {
#[builder(IntoPropValue, into_prop_value)]
#[prop_or_default]
pub history: Option<AnyHistory>,
+
+ /// Page animation style used when switching between pages
+ #[builder(IntoPropValue, into_prop_value)]
+ #[prop_or_default]
+ pub page_animation: Option<PageAnimationStyle>,
}
impl MaterialApp {
@@ -372,7 +377,10 @@ impl Component for PwtMaterialApp {
let app = Container::new()
.class("pwt-viewport")
- .with_child(PageStack::new(page_stack))
+ .with_child(
+ PageStack::new(page_stack)
+ .animation_style(props.page_animation.unwrap_or(PageAnimationStyle::Push)),
+ )
.with_child(
SnackBarManager::new()
.controller(self.snackbar_controller.clone())
--
2.39.5
More information about the yew-devel
mailing list