Skip to content

Commit

Permalink
Fix MaterialBorderBoxShadowMixin transitions apply logic
Browse files Browse the repository at this point in the history
  • Loading branch information
SKProCH committed Jan 12, 2024
1 parent 88eb6c4 commit b7d506f
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions Material.Styles/Assists/Mixins/MaterialBorderBoxShadowMixin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Material.Styles.Assists.Mixins;
/// Adds BoxShadows transitions for any control, which has enabled animations.
/// </summary>
public static class MaterialBorderBoxShadowMixin {
public static BoxShadowsTransition TargetTransition { get; set; } = new() { Property = Border.BoxShadowProperty, Duration = TimeSpan.FromMilliseconds(350) };
public static BoxShadowsTransition TargetTransition { get; set; } = new() { Property = Border.BoxShadowProperty, Duration = TimeSpan.FromMilliseconds(3500) };

/// <summary>
/// Initializes BoxShadows transitions for specified control.
Expand All @@ -26,17 +26,20 @@ private static void OnDisableTransitionsChanged<TControl>(TControl control, Aval
if (transitions is null) return;

var disableTransitions = args.GetNewValue<bool>();
if (disableTransitions)
transitions.Remove(TargetTransition);
else
transitions.Add(TargetTransition);
ToggleTransitions(transitions, disableTransitions);
}

private static void OnTransitionCollectionChanged<TControl>(TControl control, AvaloniaPropertyChangedEventArgs args)
where TControl : Control {
var disableTransitions = (bool)control.GetValue(TransitionAssist.DisableTransitionsProperty)!;
if (disableTransitions) return;
if (args.NewValue is Transitions transitions)
ToggleTransitions(transitions, disableTransitions);
}

if (args.NewValue is Transitions transitions && !transitions.Contains(TargetTransition)) transitions.Add(TargetTransition);
private static void ToggleTransitions(Transitions transitions, bool disableTransitions) {
if (disableTransitions)
transitions.Remove(TargetTransition);
else if (!transitions.Contains(TargetTransition))
transitions.Add(TargetTransition);
}
}

0 comments on commit b7d506f

Please sign in to comment.