diff --git a/internal_packages/notifications/lib/activity-sidebar.cjsx b/internal_packages/notifications/lib/activity-sidebar.cjsx index 47efa997c..80a160118 100644 --- a/internal_packages/notifications/lib/activity-sidebar.cjsx +++ b/internal_packages/notifications/lib/activity-sidebar.cjsx @@ -36,15 +36,27 @@ class ActivitySidebar extends React.Component names = classNames "sidebar-activity": true - "sidebar-activity-empty": items.length is 0 "sidebar-activity-error": error? + wrapperClass = "sidebar-activity-transition-wrapper " + + if items.length is 0 + wrapperClass += "sidebar-activity-empty" + else + inside = + {items} + + - {items} + transitionName="activity-opacity"> + {inside} _renderSyncActivityItem: => diff --git a/internal_packages/notifications/stylesheets/notifications.less b/internal_packages/notifications/stylesheets/notifications.less index 19f475b17..ac06a4917 100644 --- a/internal_packages/notifications/stylesheets/notifications.less +++ b/internal_packages/notifications/stylesheets/notifications.less @@ -1,10 +1,20 @@ @import "ui-variables"; @import "ui-mixins"; +.sidebar-activity-transition-wrapper { + order: 2; + + &.sidebar-activity-empty { + position: absolute; + bottom: 0; + width: 100%; + } +} + .sidebar-activity { + display: block; width: 100%; bottom: 0; - order:2; background: @background-off-primary; font-size: @font-size-small; color: @text-color-subtle; @@ -41,7 +51,7 @@ background-color: @background-color-info; } } - // TODO: Necessary for Chromium 42 to render `activity-item-leave` animation + // TODO: Necessary for Chromium 42 to render `activity-opacity-leave` animation // properly. Removing position relative causes the div to remain visible position:relative; opacity: 1; @@ -56,22 +66,22 @@ } } -.activity-item-enter { +.activity-opacity-enter { opacity:0; transition: opacity .125s ease-out; } -.activity-item-enter.activity-item-enter-active { +.activity-opacity-enter.activity-opacity-enter-active { opacity:1; } -.activity-item-leave { +.activity-opacity-leave { opacity:1; transition: opacity .125s ease-in; transition-delay: 0.5s; } -.activity-item-leave.activity-item-leave-active { +.activity-opacity-leave.activity-opacity-leave-active { transition-delay: 0.5s; opacity:0; }