make things super simple and snappy.
MODIFY
WalletWasabi.Fluent/Controls/ContentArea.axaml
WalletWasabi.Fluent/Controls/ContentArea.axaml
<Setter Property="Template">
<ControlTemplate>
<Panel>
- <c:ProgressRing Name="LoadingRing" IsIndeterminate="True"/>
- <DockPanel Name="MainDockPanel" Margin="20,0,10,0">
+ <c:ProgressRing Name="LoadingRing" IsIndeterminate="True" IsVisible="{TemplateBinding IsBusy}" />
+ <DockPanel Name="MainDockPanel" Margin="20,0,10,0" IsVisible="{Binding !#LoadingRing.IsVisible}">
<StackPanel DockPanel.Dock="Top" Spacing="10" Margin="0 0 0 20">
<DockPanel>
<Button Margin="-20,0,0,0" Classes="plain" Command="{Binding BackCommand}" IsVisible="{TemplateBinding EnableBack}">
<Setter Property="Opacity" Value="0.6" />
</Style>
- <Style Selector="c|ContentArea /template/ DockPanel#MainDockPanel">
- <Setter Property="Transitions">
- <Transitions>
- <DoubleTransition Property="Opacity" Duration="0.27" Easing="{StaticResource FluentEasing}"/>
- <TransformOperationsTransition Property="RenderTransform" Duration="0.27" Easing="{StaticResource FluentEasing}"/>
- </Transitions>
- </Setter>
- </Style>
-
- <Style Selector="c|ContentArea[IsBusy=True] /template/ DockPanel#MainDockPanel">
- <Setter Property="Opacity" Value="0"/>
- <Setter Property="RenderTransform" Value="scale(0.98)"/>
- </Style>
-
- <Style Selector="c|ContentArea[IsBusy=False] /template/ DockPanel#MainDockPanel">
- <Setter Property="Opacity" Value="1"/>
- <Setter Property="RenderTransform" Value="scale(1)"/>
- </Style>
-
- <Style Selector="c|ContentArea[IsBusy=True] /template/ c|ProgressRing#LoadingRing">
- <Setter Property="Opacity" Value="1"/>
- <Setter Property="RenderTransform" Value="scale(1)"/>
- </Style>
-
- <Style Selector="c|ContentArea[IsBusy=False] /template/ c|ProgressRing#LoadingRing">
- <Setter Property="Opacity" Value="0"/>
- <Setter Property="RenderTransform" Value="scale(0.98)"/>
- </Style>
-
<Style Selector="c|ContentArea /template/ c|ProgressRing#LoadingRing">
- <Setter Property="Transitions">
- <Transitions>
- <DoubleTransition Property="Opacity" Duration="0.27" Easing="{StaticResource FluentEasing}"/>
- <TransformOperationsTransition Property="RenderTransform" Duration="0.27" Easing="{StaticResource FluentEasing}" />
- </Transitions>
- </Setter>
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="100"/>
</Style>

MODIFY
WalletWasabi.Fluent/ViewModels/AddWallet/RecoverWalletViewModel.cs
WalletWasabi.Fluent/ViewModels/AddWallet/RecoverWalletViewModel.cs
@@ -23,7 +23,6 @@ namespace WalletWasabi.Fluent.ViewModels.AddWallet
private string? _selectedTag;
private IEnumerable<string>? _suggestions;
private Mnemonic? _currentMnemonics;
- private bool _isBusy;
public RecoverWalletViewModel(
NavigationStateViewModel navigationState,
@@ -155,12 +154,6 @@ namespace WalletWasabi.Fluent.ViewModels.AddWallet
set => this.RaiseAndSetIfChanged(ref _currentMnemonics, value);
}
- private bool IsBusy
- {
- get => _isBusy;
- set => this.RaiseAndSetIfChanged(ref _isBusy, value);
- }
-
private void ValidateMnemonics(IValidationErrors errors)
{
if (CurrentMnemonics is { } && !CurrentMnemonics.IsValidChecksum)

MODIFY
WalletWasabi.Fluent/ViewModels/RoutableViewModel.cs
WalletWasabi.Fluent/ViewModels/RoutableViewModel.cs
@@ -10,6 +10,8 @@ namespace WalletWasabi.Fluent.ViewModels
{
public abstract class RoutableViewModel : ViewModelBase, IRoutableViewModel
{
+ private bool _isBusy;
+
protected RoutableViewModel(NavigationStateViewModel navigationState, NavigationTarget navigationTarget)
{
NavigationState = navigationState;
@@ -29,6 +31,12 @@ namespace WalletWasabi.Fluent.ViewModels
_ => NavigationState.HomeScreen.Invoke(),
};
+ public bool IsBusy
+ {
+ get => _isBusy;
+ set => this.RaiseAndSetIfChanged(ref _isBusy, value);
+ }
+
public NavigationStateViewModel NavigationState { get; }
public NavigationTarget NavigationTarget { get; }

MODIFY
WalletWasabi.Fluent/Views/AddWallet/RecoverWalletView.axaml
WalletWasabi.Fluent/Views/AddWallet/RecoverWalletView.axaml
EnableBack="True"
EnableCancel="True" CancelContent="Cancel"
EnableNext="True" NextContent="Finish"
- x:CompileBindings="False"
- IsBusy="{Binding IsBusy, Mode=OneWay}">
+ IsBusy="{Binding IsBusy}">
<StackPanel>
<DockPanel>
<PathIcon Name="IconCheckmark" Classes="checkMark" Margin="15 42 0 0" VerticalAlignment="Top"

make things super simple and snappy.