Skip to content

Commit 22c9bcd

Browse files
authored
feat: disabled 'new sync form' when creating a mutagen sync (#110)
Closes: #82
1 parent d6cbf71 commit 22c9bcd

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

App/ViewModels/FileSyncListViewModel.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ public partial class FileSyncListViewModel : ObservableObject
4848
[NotifyPropertyChangedFor(nameof(ShowSessions))]
4949
public partial string? Error { get; set; } = null;
5050

51-
[ObservableProperty] public partial bool OperationInProgress { get; set; } = false;
51+
[ObservableProperty]
52+
[NotifyPropertyChangedFor(nameof(CanOpenLocalPath))]
53+
[NotifyPropertyChangedFor(nameof(NewSessionRemoteHostEnabled))]
54+
[NotifyPropertyChangedFor(nameof(NewSessionRemotePathDialogEnabled))]
55+
public partial bool OperationInProgress { get; set; } = false;
5256

5357
[ObservableProperty] public partial IReadOnlyList<SyncSessionViewModel> Sessions { get; set; } = [];
5458

@@ -60,6 +64,7 @@ public partial class FileSyncListViewModel : ObservableObject
6064

6165
[ObservableProperty]
6266
[NotifyPropertyChangedFor(nameof(NewSessionCreateEnabled))]
67+
[NotifyPropertyChangedFor(nameof(CanOpenLocalPath))]
6368
public partial bool NewSessionLocalPathDialogOpen { get; set; } = false;
6469

6570
[ObservableProperty]
@@ -80,10 +85,12 @@ public partial class FileSyncListViewModel : ObservableObject
8085
[NotifyPropertyChangedFor(nameof(NewSessionRemotePathDialogEnabled))]
8186
public partial bool NewSessionRemotePathDialogOpen { get; set; } = false;
8287

83-
public bool NewSessionRemoteHostEnabled => AvailableHosts.Count > 0;
88+
public bool CanOpenLocalPath => !NewSessionLocalPathDialogOpen && !OperationInProgress;
89+
90+
public bool NewSessionRemoteHostEnabled => AvailableHosts.Count > 0 && !OperationInProgress;
8491

8592
public bool NewSessionRemotePathDialogEnabled =>
86-
!string.IsNullOrWhiteSpace(NewSessionRemoteHost) && !NewSessionRemotePathDialogOpen;
93+
!string.IsNullOrWhiteSpace(NewSessionRemoteHost) && !NewSessionRemotePathDialogOpen && !OperationInProgress;
8794

8895
[ObservableProperty] public partial string NewSessionStatus { get; set; } = "";
8996

App/Views/Pages/FileSyncListMainPage.xaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,11 +318,12 @@
318318
Grid.Column="0"
319319
Margin="0,0,5,0"
320320
VerticalAlignment="Stretch"
321+
IsEnabled="{x:Bind ViewModel.OperationInProgress,Converter={StaticResource InverseBoolConverter}, Mode=OneWay}"
321322
Text="{x:Bind ViewModel.NewSessionLocalPath, Mode=TwoWay}" />
322323

323324
<Button
324325
Grid.Column="1"
325-
IsEnabled="{x:Bind ViewModel.NewSessionLocalPathDialogOpen, Converter={StaticResource InverseBoolConverter}, Mode=OneWay}"
326+
IsEnabled="{x:Bind ViewModel.CanOpenLocalPath, Mode=OneWay}"
326327
Command="{x:Bind ViewModel.OpenLocalPathSelectDialogCommand}"
327328
VerticalAlignment="Stretch">
328329

@@ -350,6 +351,7 @@
350351
Grid.Column="0"
351352
Margin="0,0,5,0"
352353
VerticalAlignment="Stretch"
354+
IsEnabled="{x:Bind ViewModel.NewSessionRemotePathDialogEnabled, Mode=OneWay}"
353355
Text="{x:Bind ViewModel.NewSessionRemotePath, Mode=TwoWay}" />
354356

355357
<Button

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy