From c8675142117d57188d710bcbe39ca28d19181d1f Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Mon, 15 Aug 2022 21:03:01 +0200 Subject: [PATCH] Made create project button aware of user input's state --- .../UI MAUI/Pages/LoadProject.razor | 4 +-- .../UI MAUI/Pages/LoadProject.razor.cs | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/I18N Commander/UI MAUI/Pages/LoadProject.razor b/I18N Commander/UI MAUI/Pages/LoadProject.razor index 5912809..f1adf22 100644 --- a/I18N Commander/UI MAUI/Pages/LoadProject.razor +++ b/I18N Commander/UI MAUI/Pages/LoadProject.razor @@ -24,7 +24,7 @@
- +
@if (DeviceInfo.Idiom == DeviceIdiom.Desktop) @@ -38,5 +38,5 @@ } - +
\ No newline at end of file diff --git a/I18N Commander/UI MAUI/Pages/LoadProject.razor.cs b/I18N Commander/UI MAUI/Pages/LoadProject.razor.cs index 49512f8..93a9dc0 100644 --- a/I18N Commander/UI MAUI/Pages/LoadProject.razor.cs +++ b/I18N Commander/UI MAUI/Pages/LoadProject.razor.cs @@ -7,6 +7,7 @@ public partial class LoadProject { private readonly List recentProjects = new(); + private string newProjectName = string.Empty; private string newProjectDestination = string.Empty; #region Overrides of ComponentBase @@ -39,17 +40,36 @@ public partial class LoadProject private Task ChooseProjectDestination() { + try + { #if WINDOWS - return this.ChooseProjectDestinationWindows(); + return this.ChooseProjectDestinationWindows(); #elif MACCATALYST - return this.ChooseProjectDestinationMacOS(); + return this.ChooseProjectDestinationMacOS(); #else - return Task.CompletedTask; + return Task.CompletedTask; #endif + } + finally + { + this.StateHasChanged(); + } } private Task CreateProject() { return Task.CompletedTask; } + + private bool CannotCreateProject() + { + if (DeviceInfo.Idiom == DeviceIdiom.Desktop) + return string.IsNullOrWhiteSpace(this.newProjectName) || string.IsNullOrWhiteSpace(this.newProjectDestination); + else if (DeviceInfo.Idiom == DeviceIdiom.Phone || DeviceInfo.Idiom == DeviceIdiom.Tablet) + return string.IsNullOrWhiteSpace(this.newProjectName); + else + return true; + } + + private void ReevaluateState() => this.StateHasChanged(); } \ No newline at end of file