fix: Some page relation is not responsed.
This commit is contained in:
parent
b1582ad4d4
commit
f687dc33a2
@ -33,13 +33,13 @@
|
|||||||
<Assembly Path="C:\Users\Cardi\.nuget\packages\irihi.ursa\1.10.0\lib\net8.0\Ursa.dll" />
|
<Assembly Path="C:\Users\Cardi\.nuget\packages\irihi.ursa\1.10.0\lib\net8.0\Ursa.dll" />
|
||||||
<Assembly Path="C:\Users\Cardi\.nuget\packages\irihi.ursa.themes.semi\1.10.0\lib\netstandard2.0\Ursa.Themes.Semi.dll" />
|
<Assembly Path="C:\Users\Cardi\.nuget\packages\irihi.ursa.themes.semi\1.10.0\lib\netstandard2.0\Ursa.Themes.Semi.dll" />
|
||||||
</AssemblyExplorer></s:String>
|
</AssemblyExplorer></s:String>
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=b5573ef9_002Db554_002D4a56_002D82c4_002D2531c8feef65/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" IsLocked="True" Name="PathValidationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=b5573ef9_002Db554_002D4a56_002D82c4_002D2531c8feef65/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" IsLocked="True" Name="PathValidationTest" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
<TestAncestor>
|
<TestAncestor>
|
||||||
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit</TestId>
|
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit</TestId>
|
||||||
</TestAncestor>
|
</TestAncestor>
|
||||||
</SessionState></s:String>
|
</SessionState></s:String>
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=f3f8a684_002Dc08e_002D489f_002D949c_002D6c38a1ed63b0/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="PathValidationTest #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=f3f8a684_002Dc08e_002D489f_002D949c_002D6c38a1ed63b0/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="PathValidationTest #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
<TestAncestor>
|
<TestAncestor>
|
||||||
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit.PathValidationTest</TestId>
|
<TestId>MSTest::5B1CB26D-99F5-491A-B368-7E3552FE67E9::net9.0::Flawless.Abstract.Test.WorkPathTestUnit.PathValidationTest</TestId>
|
||||||
</TestAncestor>
|
</TestAncestor>
|
||||||
</SessionState></s:String></wpf:ResourceDictionary>
|
</SessionState></s:String></wpf:ResourceDictionary>
|
||||||
21
Flawless.Client/ViewModels/MainViewModel.cs
Normal file
21
Flawless.Client/ViewModels/MainViewModel.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reactive;
|
||||||
|
using ReactiveUI;
|
||||||
|
|
||||||
|
namespace Flawless.Client.ViewModels;
|
||||||
|
|
||||||
|
public class MainViewModel : ViewModelBase, IScreen, IRoutableViewModel
|
||||||
|
{
|
||||||
|
public string? UrlPathSegment { get; } = Guid.NewGuid().ToString();
|
||||||
|
|
||||||
|
public IScreen HostScreen { get; }
|
||||||
|
|
||||||
|
public RoutingState Router { get; } = new RoutingState();
|
||||||
|
|
||||||
|
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
|
||||||
|
|
||||||
|
public MainViewModel(IScreen hostScreen)
|
||||||
|
{
|
||||||
|
HostScreen = hostScreen;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Reactive;
|
using System;
|
||||||
|
using System.Reactive;
|
||||||
using System.Reactive.Linq;
|
using System.Reactive.Linq;
|
||||||
using Flawless.Client.Service;
|
using Flawless.Client.Service;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
@ -11,12 +12,23 @@ public partial class MainWindowViewModel : ViewModelBase, IScreen
|
|||||||
public RoutingState Router { get; } = new RoutingState();
|
public RoutingState Router { get; } = new RoutingState();
|
||||||
|
|
||||||
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
|
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
|
||||||
|
|
||||||
[Reactive] private bool _requireLogin = true;
|
|
||||||
|
|
||||||
|
|
||||||
public MainWindowViewModel()
|
public MainWindowViewModel()
|
||||||
{
|
{
|
||||||
Api.Current.IsLoggedIn.Select(x => !x).BindTo(this, vm => vm.RequireLogin);
|
#pragma warning disable VSTHRD110
|
||||||
|
Api.Current.IsLoggedIn.Subscribe(login =>
|
||||||
|
{
|
||||||
|
if (login)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Enter main page");
|
||||||
|
Router.Navigate.Execute(new LoginViewModel(this));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("Require login again");
|
||||||
|
Router.NavigateAndReset.Execute(new ServerConnectViewModel(this));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
#pragma warning restore VSTHRD110
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -10,9 +10,13 @@ using Ursa.ReactiveUIExtension;
|
|||||||
|
|
||||||
namespace Flawless.Client.ViewModels;
|
namespace Flawless.Client.ViewModels;
|
||||||
|
|
||||||
public partial class ServerConnectViewModel : ViewModelBase, IScreen
|
public partial class ServerConnectViewModel : ViewModelBase, IScreen, IRoutableViewModel
|
||||||
{
|
{
|
||||||
public RoutingState Router { get; } = new RoutingState();
|
public string? UrlPathSegment { get; } = Guid.NewGuid().ToString();
|
||||||
|
|
||||||
|
public IScreen HostScreen { get; }
|
||||||
|
|
||||||
|
public RoutingState Router { get; } = new();
|
||||||
|
|
||||||
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
|
public ReactiveCommand<Unit, IRoutableViewModel> GoBackCommand => Router.NavigateBack;
|
||||||
|
|
||||||
@ -25,8 +29,9 @@ public partial class ServerConnectViewModel : ViewModelBase, IScreen
|
|||||||
if (Api.Current.RequireRefreshToken()) await Router.NavigateAndReset.Execute(new ServerSetupViewModel(this)).ToTask();
|
if (Api.Current.RequireRefreshToken()) await Router.NavigateAndReset.Execute(new ServerSetupViewModel(this)).ToTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ServerConnectViewModel()
|
public ServerConnectViewModel(IScreen hostScreen)
|
||||||
{
|
{
|
||||||
|
HostScreen = hostScreen;
|
||||||
Router.CurrentViewModel
|
Router.CurrentViewModel
|
||||||
.Select(vm => vm?.GetType().Name.Replace("ViewModel", string.Empty) ?? "Hello")
|
.Select(vm => vm?.GetType().Name.Replace("ViewModel", string.Empty) ?? "Hello")
|
||||||
.BindTo(this, vm => vm.Title);
|
.BindTo(this, vm => vm.Title);
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
|
using Flawless.Client.ViewModels;
|
||||||
|
using Ursa.ReactiveUIExtension;
|
||||||
|
|
||||||
namespace Flawless.Client.Views;
|
namespace Flawless.Client.Views;
|
||||||
|
|
||||||
public partial class MainView : UserControl
|
public partial class MainView : ReactiveUrsaView<MainViewModel>
|
||||||
{
|
{
|
||||||
public MainView()
|
public MainView()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -19,8 +19,7 @@
|
|||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
|
|
||||||
<Panel>
|
<Panel>
|
||||||
<views:ServerConnectView IsVisible="{Binding !!RequireLogin, Mode=OneWay}"/>
|
<rxui:RoutedViewHost Router="{Binding Router}"/>
|
||||||
<views:MainView IsVisible="{Binding !RequireLogin, Mode=OneWay}"/>
|
|
||||||
<ursa:OverlayDialogHost/>
|
<ursa:OverlayDialogHost/>
|
||||||
</Panel>
|
</Panel>
|
||||||
</ursa:UrsaWindow>
|
</ursa:UrsaWindow>
|
||||||
@ -8,7 +8,7 @@
|
|||||||
x:Class="Flawless.Client.Views.ServerConnectView"
|
x:Class="Flawless.Client.Views.ServerConnectView"
|
||||||
x:DataType="vm:ServerConnectViewModel">
|
x:DataType="vm:ServerConnectViewModel">
|
||||||
|
|
||||||
<Border Classes="Shadow" Theme="{StaticResource CardBorder}" MaxWidth="400" MaxHeight="400">
|
<Border Classes="Shadow" Theme="{StaticResource CardBorder}" Width="400" Height="400">
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" VerticalAlignment="Center" Spacing="18">
|
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" VerticalAlignment="Center" Spacing="18">
|
||||||
<Button Command="{Binding GoBackCommand}"
|
<Button Command="{Binding GoBackCommand}"
|
||||||
|
|||||||
@ -2,14 +2,14 @@
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
using Flawless.Client.ViewModels;
|
using Flawless.Client.ViewModels;
|
||||||
|
using Ursa.ReactiveUIExtension;
|
||||||
|
|
||||||
namespace Flawless.Client.Views;
|
namespace Flawless.Client.Views;
|
||||||
|
|
||||||
public partial class ServerConnectView : UserControl
|
public partial class ServerConnectView : ReactiveUrsaView<ServerConnectViewModel>
|
||||||
{
|
{
|
||||||
public ServerConnectView()
|
public ServerConnectView()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
DataContext = new ServerConnectViewModel();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user