mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Router - Require routable VMs to implement new RoutableScreen
This commit is contained in:
1 parent
318ec99ad4
commit
c132edeb51
43 files changed
+284
-287
No files matched your search
+1
-1
@@ -3,6 +3,6 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Artemis.UI.Screens.Workshop.Library.Tabs.LibraryInstalledView">
|
||||
x:Class="Artemis.UI.Screens.Workshop.Library.Tabs.InstalledTabView">
|
||||
Installed entries management here 🫡
|
||||
</UserControl>
|
||||
+2
-2
@@ -5,9 +5,9 @@ using Avalonia.ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library.Tabs;
|
||||
|
||||
public partial class LibraryInstalledView : ReactiveUserControl<LibraryInstalledViewModel>
|
||||
public partial class InstalledTabView : ReactiveUserControl<InstalledTabViewModel>
|
||||
{
|
||||
public LibraryInstalledView()
|
||||
public InstalledTabView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
+2
-1
@@ -1,8 +1,9 @@
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Routing;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library.Tabs;
|
||||
|
||||
public class LibraryInstalledViewModel : ActivatableViewModelBase
|
||||
public class InstalledTabViewModel : RoutableScreen
|
||||
{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Artemis.UI.Screens.Workshop.Library.Tabs.SubmissionsDetailView">
|
||||
Welcome to Avalonia!
|
||||
</UserControl>
|
||||
@@ -0,0 +1,14 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
using Avalonia.ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library.Tabs;
|
||||
|
||||
public partial class SubmissionsDetailView : ReactiveUserControl<SubmissionsDetailViewModel>
|
||||
{
|
||||
public SubmissionsDetailView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.UI.Screens.Workshop.Parameters;
|
||||
using Artemis.UI.Shared.Routing;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library.Tabs;
|
||||
|
||||
public class SubmissionsDetailViewModel : RoutableScreen<WorkshopDetailParameters>
|
||||
{
|
||||
public override Task OnNavigating(WorkshopDetailParameters parameters, NavigationArguments args, CancellationToken cancellationToken)
|
||||
{
|
||||
Console.WriteLine(parameters.EntryId);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -8,8 +8,8 @@
|
||||
xmlns:asyncImageLoader="clr-namespace:AsyncImageLoader;assembly=AsyncImageLoader.Avalonia"
|
||||
xmlns:converters="clr-namespace:Artemis.UI.Converters"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="650"
|
||||
x:Class="Artemis.UI.Screens.Workshop.Library.Tabs.LibrarySubmissionsView"
|
||||
x:DataType="tabs:LibrarySubmissionsViewModel">
|
||||
x:Class="Artemis.UI.Screens.Workshop.Library.Tabs.SubmissionsTabView"
|
||||
x:DataType="tabs:SubmissionsTabViewModel">
|
||||
<UserControl.Resources>
|
||||
<converters:EntryIconUriConverter x:Key="EntryIconUriConverter" />
|
||||
<converters:DateTimeConverter x:Key="DateTimeConverter" />
|
||||
@@ -54,7 +54,7 @@
|
||||
Margin="0 0 0 5"
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Stretch"
|
||||
Command="{Binding $parent[tabs:LibrarySubmissionsView].DataContext.NavigateToEntry}"
|
||||
Command="{Binding $parent[tabs:SubmissionsTabView].DataContext.NavigateToEntry}"
|
||||
CommandParameter="{CompiledBinding}">
|
||||
<Grid ColumnDefinitions="Auto,*,Auto">
|
||||
<!-- Icon -->
|
||||
+2
-2
@@ -5,9 +5,9 @@ using Avalonia.ReactiveUI;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library.Tabs;
|
||||
|
||||
public partial class LibrarySubmissionsView : ReactiveUserControl<LibrarySubmissionsViewModel>
|
||||
public partial class SubmissionsTabView : ReactiveUserControl<SubmissionsTabViewModel>
|
||||
{
|
||||
public LibrarySubmissionsView()
|
||||
public SubmissionsTabView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
+2
-3
@@ -6,7 +6,6 @@ using System.Threading.Tasks;
|
||||
using Artemis.UI.Extensions;
|
||||
using Artemis.UI.Screens.Workshop.CurrentUser;
|
||||
using Artemis.UI.Screens.Workshop.SubmissionWizard;
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Routing;
|
||||
using Artemis.UI.Shared.Services;
|
||||
using Artemis.WebClient.Workshop;
|
||||
@@ -17,7 +16,7 @@ using StrawberryShake;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library.Tabs;
|
||||
|
||||
public class LibrarySubmissionsViewModel : ActivatableViewModelBase, IWorkshopViewModel
|
||||
public class SubmissionsTabViewModel : RoutableScreen
|
||||
{
|
||||
private readonly IWorkshopClient _client;
|
||||
private readonly SourceCache<IGetSubmittedEntries_SubmittedEntries, Guid> _entries;
|
||||
@@ -25,7 +24,7 @@ public class LibrarySubmissionsViewModel : ActivatableViewModelBase, IWorkshopVi
|
||||
private bool _isLoading = true;
|
||||
private bool _workshopReachable;
|
||||
|
||||
public LibrarySubmissionsViewModel(IWorkshopClient client, IAuthenticationService authenticationService, IWindowService windowService, IWorkshopService workshopService, IRouter router)
|
||||
public SubmissionsTabViewModel(IWorkshopClient client, IAuthenticationService authenticationService, IWindowService windowService, IWorkshopService workshopService, IRouter router)
|
||||
{
|
||||
_client = client;
|
||||
_windowService = windowService;
|
||||
@@ -12,7 +12,7 @@ using System;
|
||||
|
||||
namespace Artemis.UI.Screens.Workshop.Library;
|
||||
|
||||
public class WorkshopLibraryViewModel : RoutableScreen<ActivatableViewModelBase>, IWorkshopViewModel
|
||||
public class WorkshopLibraryViewModel : RoutableHostScreen<RoutableScreen>
|
||||
{
|
||||
private RouteViewModel? _selectedTab;
|
||||
|
||||
|
||||
Reference in new issue
Block a user