This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 3c0ac72  animate the snackbar
3c0ac72 is described below

commit 3c0ac7260ca0dbcfc993856e2968d575b12010a2
Author: Carlos Rovira <[email protected]>
AuthorDate: Mon Sep 10 19:56:18 2018 +0200

    animate the snackbar
---
 .../projects/Jewel/src/main/resources/defaults.css |  1 +
 .../jewel/beads/controllers/SnackbarController.as  |  9 +++-
 .../royale/jewel/beads/views/SnackbarView.as       | 15 ++++++
 .../Jewel/src/main/sass/components/_alert.sass     |  2 +
 .../Jewel/src/main/sass/components/_snackbar.sass  |  4 ++
 .../JewelTheme/src/main/resources/defaults.css     |  9 ++++
 .../main/sass/components-primary/_snackbar.sass    | 60 +++++++++++++---------
 7 files changed, 74 insertions(+), 26 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css 
b/frameworks/projects/Jewel/src/main/resources/defaults.css
index 8b910a9..71af42a 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -3143,6 +3143,7 @@ j|Slider {
   bottom: 0;
   position: fixed;
   width: 100%;
+  z-index: 5;
 }
 
 .jewel.snackbar-content {
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SnackbarController.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SnackbarController.as
index be0f54f..dfbfb9e 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SnackbarController.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controllers/SnackbarController.as
@@ -137,13 +137,20 @@ package org.apache.royale.jewel.beads.controllers
          */
         COMPILE::JS
         private function timerHandler(event:Event):void {
+                       (_strand as Snackbar).removeClass("open");
             _singletonInstance = null;
             if (_timer) {
                 _timer.stop();
                 _timer.removeAllListeners();
                 _timer = null;
             }
-            (_strand as Snackbar).dismiss();
+                       setTimeout(prepareForDismiss,  400);
+            
         }
+
+               private function prepareForDismiss():void
+        {
+                       (_strand as Snackbar).dismiss();
+               }
     }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/SnackbarView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/SnackbarView.as
index 5739a03..dade0af 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/SnackbarView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/SnackbarView.as
@@ -18,11 +18,16 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.jewel.beads.views
 {
+    COMPILE::SWF
+       {
+        import flash.utils.setTimeout;
+       }
     import org.apache.royale.core.BeadViewBase;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.events.Event;
     import org.apache.royale.jewel.Snackbar;
     import org.apache.royale.jewel.beads.models.SnackbarModel;
+    import org.apache.royale.core.UIBase;
 
     /**
         *  The SnackbarView class creates the visual elements of the 
org.apache.royale.jewel.Snackbar 
@@ -91,8 +96,18 @@ package org.apache.royale.jewel.beads.views
             }
 
             if (model.action) actionChangeHandler(null);
+
+            setTimeout(prepareForPopUp,  300);
         }
 
+        private function prepareForPopUp():void
+        {
+                       COMPILE::JS
+                       {
+                               UIBase(_strand).element.classList.add("open");
+                       }
+               }
+
 
         /**
          *  Update the text when message changed. 
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_alert.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_alert.sass
index 06d0867..944b17f 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_alert.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_alert.sass
@@ -59,6 +59,8 @@ $alert-footer-height: 50px
     // border-radius: $alert-border-radius
     // box-shadow: 0px 6px 60px -10px rgba(112,112,112,0.7)
     // background-color: #FFFFFF
+    &.open
+        + .backdrop
 
     .jewel.titlebar
         // padding: $alert-padding $alert-padding 0px $alert-padding
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_snackbar.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_snackbar.sass
index efdab42..ed1ff3f 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_snackbar.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_snackbar.sass
@@ -26,6 +26,10 @@
     bottom: 0
     position: fixed
     width: 100%
+    z-index: 5
+
+    &.open
+        
 
 .jewel.snackbar-content
     max-width: 568px
diff --git a/frameworks/themes/JewelTheme/src/main/resources/defaults.css 
b/frameworks/themes/JewelTheme/src/main/resources/defaults.css
index 89fd749..3c20b8d 100644
--- a/frameworks/themes/JewelTheme/src/main/resources/defaults.css
+++ b/frameworks/themes/JewelTheme/src/main/resources/defaults.css
@@ -619,6 +619,15 @@ j|Card {
   border-radius: 3px;
 }
 
+.jewel.snackbar {
+  will-change: transform;
+  transform: translate(0, 100%);
+  transition: transform 0.4s 0ms;
+}
+.jewel.snackbar.open {
+  transform: translate(0);
+  transition: transform 0.4s 0ms;
+}
 .jewel.snackbar.primary .jewel.snackbar-content {
   background: linear-gradient(#54b7f3, #24a3ef);
   border: 1px solid #0f88d1;
diff --git 
a/frameworks/themes/JewelTheme/src/main/sass/components-primary/_snackbar.sass 
b/frameworks/themes/JewelTheme/src/main/sass/components-primary/_snackbar.sass
index 2fa582b..c1320b2 100644
--- 
a/frameworks/themes/JewelTheme/src/main/sass/components-primary/_snackbar.sass
+++ 
b/frameworks/themes/JewelTheme/src/main/sass/components-primary/_snackbar.sass
@@ -23,35 +23,45 @@
 $snackbar-border-radius: $border-radius
 $snackbar-default-color: #2C3E50
 $snackbar-action-color: $action-color
+$snackbar-popup-margin-offset: 10px
 
-.jewel.snackbar.primary
-       .jewel.snackbar-content
-               @if $flat
-                       background: $primary-color
-                       border: 0px solid
-               @else
-                       background: linear-gradient(lighten($primary-color, 
5%), darken($primary-color, 5%))
-                       border: 1px solid darken($primary-color, 15%)
-                       box-shadow: inset 0 1px 0 lighten($primary-color, 20%)
-                       border-bottom: none
-               
-               // +jewel-bg-border("normal", $primary-color, 
$snackbar-border-radius) --> we want only rounded corners on top corners
-       
-       .jewel.snackbar-message
-               color: $font-theme-color
+.jewel.snackbar
+       will-change: transform
+       transform: translate(0, 100%)
+       transition: animation-standard(transform, .4s)
+
+       &.open
+               transform: translate(0)
+               transition: animation-standard(transform, .4s)
 
-       .jewel.snackbar-action
-               color: $yellow
-       
-               &:hover
+       &.primary
+               .jewel.snackbar-content
                        @if $flat
-                               background: darken($primary-color, 5%)
-                               border: none
+                               background: $primary-color
+                               border: 0px solid
                        @else
-                               background: linear-gradient($primary-color, 
darken($primary-color, 10%))
-                       // +jewel-bg-border("hover", $primary-color)
-                       // @if $flat == false
-                       //      border: none
+                               background: 
linear-gradient(lighten($primary-color, 5%), darken($primary-color, 5%))
+                               border: 1px solid darken($primary-color, 15%)
+                               box-shadow: inset 0 1px 0 
lighten($primary-color, 20%)
+                               border-bottom: none
+                       
+                       // +jewel-bg-border("normal", $primary-color, 
$snackbar-border-radius) --> we want only rounded corners on top corners
+               
+               .jewel.snackbar-message
+                       color: $font-theme-color
+
+               .jewel.snackbar-action
+                       color: $yellow
+               
+                       &:hover
+                               @if $flat
+                                       background: darken($primary-color, 5%)
+                                       border: none
+                               @else
+                                       background: 
linear-gradient($primary-color, darken($primary-color, 10%))
+                               // +jewel-bg-border("hover", $primary-color)
+                               // @if $flat == false
+                               //      border: none
 
 .jewel.snackbar-content
        background: $snackbar-default-color

Reply via email to