[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