diff --git a/Wabbajack.App.Blazor/Components/ModlistItem.razor b/Wabbajack.App.Blazor/Components/ModlistItem.razor
index de69b886..5223f027 100644
--- a/Wabbajack.App.Blazor/Components/ModlistItem.razor
+++ b/Wabbajack.App.Blazor/Components/ModlistItem.razor
@@ -1,12 +1,13 @@
@namespace Wabbajack.App.Blazor.Components
@using Wabbajack.App.Blazor.Store
+@using Wabbajack.RateLimiter
@inherits Fluxor.Blazor.Web.Components.FluxorComponent
- @if (_installState.Value.CurrentInstallState != InstallState.InstallStateEnum.Configuration)
+ @if (_downloadState.Value.CurrentDownloadState == DownloadState.DownloadStateEnum.Downloading)
{

}
@@ -17,9 +18,9 @@
- @if (_installState.Value.CurrentInstallState == InstallState.InstallStateEnum.Downloading && _installState.Value.CurrentModlistMetadata == Metadata)
+ @if (DownloadProgress != Percent.Zero)
{
-
+
}
@Metadata.Title
diff --git a/Wabbajack.App.Blazor/Components/ModlistItem.razor.cs b/Wabbajack.App.Blazor/Components/ModlistItem.razor.cs
index 0527d9f7..a95c0996 100644
--- a/Wabbajack.App.Blazor/Components/ModlistItem.razor.cs
+++ b/Wabbajack.App.Blazor/Components/ModlistItem.razor.cs
@@ -1,29 +1,29 @@
using System;
using System.Diagnostics;
-using System.Reactive.Disposables;
using System.Threading;
using System.Threading.Tasks;
using Fluxor;
using Microsoft.AspNetCore.Components;
-using Microsoft.CodeAnalysis;
-using Microsoft.Extensions.Logging;
using Wabbajack.App.Blazor.Store;
+using Wabbajack.Common;
using Wabbajack.DTOs;
-using Wabbajack.Networking.WabbajackClientApi;
+using Wabbajack.Paths.IO;
using Wabbajack.RateLimiter;
using Wabbajack.Services.OSIntegrated.Services;
+
namespace Wabbajack.App.Blazor.Components
{
public partial class ModlistItem
{
- [Inject] private ModListDownloadMaintainer _maintainer { get; set; }
- [Inject] private IState
_downloadState { get; set; }
- [Inject] private IDispatcher _dispatcher { get; set; }
+ [Inject] private IState _downloadState { get; set; }
+ [Inject] private ModListDownloadMaintainer _maintainer { get; set; }
+ [Inject] private IDispatcher _dispatcher { get; set; }
+ [Inject] private NavigationManager NavigationManager { get; set; }
[Parameter] public ModlistMetadata Metadata { get; set; }
- public double PercentDownloaded { get; set; }
+ public Percent DownloadProgress { get; set; }
private async Task Download()
{
@@ -31,25 +31,27 @@ namespace Wabbajack.App.Blazor.Components
timer.Change(TimeSpan.FromMilliseconds(250), TimeSpan.FromMilliseconds(250));
try
{
- UpdateInstallState(InstallState.InstallStateEnum.Downloading, Metadata);
-
+ UpdateDownloadState(DownloadState.DownloadStateEnum.Downloading, Metadata);
(IObservable progress, Task task) = _maintainer.DownloadModlist(Metadata);
- IDisposable dispose = progress.Subscribe(p => { PercentDownloaded = p.Value * 100; });
+ IDisposable dispose = progress.Subscribe(p => DownloadProgress = p);
await task;
//await _wjClient.SendMetric("downloading", Metadata.Title);
- Debug.Print("##### WE DOWNLOADED THE THING!");
- UpdateInstallState(InstallState.InstallStateEnum.Configuration);
+ UpdateDownloadState(DownloadState.DownloadStateEnum.Downloaded, Metadata);
dispose.Dispose();
+ NavigationManager.NavigateTo($"configure/{Metadata.Links.MachineURL}");
+
}
catch (Exception e)
{
Debug.Print(e.Message);
+ UpdateDownloadState(DownloadState.DownloadStateEnum.Failure, Metadata);
}
await timer.DisposeAsync();
}
- private void UpdateInstallState(InstallState.InstallStateEnum state, ModlistMetadata? metadata = null) => _dispatcher.Dispatch(new UpdateInstallState(state, metadata));
+ private void UpdateDownloadState(DownloadState.DownloadStateEnum state, ModlistMetadata metadata) =>
+ _dispatcher.Dispatch(new UpdateDownloadState(state, metadata));
}
}
\ No newline at end of file
diff --git a/Wabbajack.App.Blazor/Components/ModlistItem.razor.scss b/Wabbajack.App.Blazor/Components/ModlistItem.razor.scss
index 3c83ad1f..54f9261f 100644
--- a/Wabbajack.App.Blazor/Components/ModlistItem.razor.scss
+++ b/Wabbajack.App.Blazor/Components/ModlistItem.razor.scss
@@ -49,7 +49,7 @@ $hover-icon-size: 75px;
margin: 0;
transition: all 150ms ease-in-out;
- .hidden {
+ &.hidden {
opacity: 0.25;
}
diff --git a/Wabbajack.App.Blazor/Components/ProgressBar.razor b/Wabbajack.App.Blazor/Components/ProgressBar.razor
index f82c61d5..393c3ce7 100644
--- a/Wabbajack.App.Blazor/Components/ProgressBar.razor
+++ b/Wabbajack.App.Blazor/Components/ProgressBar.razor
@@ -1,7 +1,8 @@
-
+@using Wabbajack.RateLimiter
+
@code {
[Parameter]
- public double Percentage { get; set; }
+ public Percent Percentage { get; set; }
}
\ No newline at end of file
diff --git a/Wabbajack.App.Blazor/Controllers/DownloadController.cs b/Wabbajack.App.Blazor/Controllers/DownloadController.cs
deleted file mode 100644
index 90461cdc..00000000
--- a/Wabbajack.App.Blazor/Controllers/DownloadController.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Threading.Tasks;
-using Fluxor;
-using Wabbajack.App.Blazor.Store;
-using Wabbajack.DTOs;
-using Wabbajack.RateLimiter;
-using Wabbajack.Services.OSIntegrated.Services;
-
-namespace Wabbajack.App.Blazor.Controllers;
-
-public class DownloadController
-{
- private readonly ModListDownloadMaintainer _maintainer;
- private readonly IState _downloadState;
- private IDispatcher _dispatcher;
-
- public DownloadController(ModListDownloadMaintainer maintainer, IState downloadState, IDispatcher dispatcher)
- {
- _maintainer = maintainer;
- _downloadState = downloadState;
- _dispatcher = dispatcher;
- }
-
- private async Task DownloadModlist(ModlistMetadata metadata)
- {
- // await using Timer timer = new(_ => InvokeAsync(StateHasChanged));
- // timer.Change(TimeSpan.FromMilliseconds(250), TimeSpan.FromMilliseconds(250));
- try
- {
- (IObservable progress, Task task) = _maintainer.DownloadModlist(metadata);
- IDisposable dispose = progress.Subscribe(p =>
- {
- UpdateDownloadState(DownloadState.DownloadStateEnum.Downloading, metadata, p);
- });
-
- await task;
- //await _wjClient.SendMetric("downloading", Metadata.Title);
- UpdateDownloadState(DownloadState.DownloadStateEnum.Downloaded, metadata);
- dispose.Dispose();
- }
- catch (Exception e)
- {
- Debug.Print(e.Message);
- }
-
- // await timer.DisposeAsync();
- }
-
- private void UpdateDownloadState(DownloadState.DownloadStateEnum state, ModlistMetadata metadata, Percent? progress = null) => _dispatcher.Dispatch(new UpdateDownloadState(state, metadata, progress));
-}
\ No newline at end of file
diff --git a/Wabbajack.App.Blazor/Pages/Configure.razor b/Wabbajack.App.Blazor/Pages/Configure.razor
index f281a439..eb2c4536 100644
--- a/Wabbajack.App.Blazor/Pages/Configure.razor
+++ b/Wabbajack.App.Blazor/Pages/Configure.razor
@@ -1,7 +1,7 @@
-@page "/configure/{path}"
+@page "/configure/{machineURL}"
@layout Shared.MainLayout
@using System.Diagnostics
-@using Wabbajack.Paths
+@using Wabbajack.Common
@using Wabbajack.Paths.IO
@inherits Fluxor.Blazor.Web.Components.FluxorComponent
@@ -32,15 +32,16 @@
@code {
[Parameter]
- public string path { get; set; }
+ public string machineURL { get; set; }
protected override void OnInitialized()
{
- var file = path.ToAbsolutePath();
- if (file.FileExists())
+ var Location = KnownFolders.EntryPoint.Combine("downloaded_mod_lists", machineURL).WithExtension(Ext.Wabbajack);
+ if (Location.FileExists())
{
Debug.Print("IT EXISTS I GUESS");
}
+ base.OnInitialized();
}
}
\ No newline at end of file
diff --git a/Wabbajack.App.Blazor/Pages/Gallery.razor b/Wabbajack.App.Blazor/Pages/Gallery.razor
index 35ab9724..65db4093 100644
--- a/Wabbajack.App.Blazor/Pages/Gallery.razor
+++ b/Wabbajack.App.Blazor/Pages/Gallery.razor
@@ -1,7 +1,5 @@
@page "/gallery"
@layout Shared.MainLayout
-@inherits Fluxor.Blazor.Web.Components.FluxorComponent
-
@using Wabbajack.Networking.WabbajackClientApi;
@using Wabbajack.DTOs
@@ -12,4 +10,28 @@
{
}
-
\ No newline at end of file
+
+
+@code {
+
+ List _listItems = new();
+
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ if (!firstRender) return base.OnAfterRenderAsync(firstRender);
+
+ try
+ {
+ ModlistMetadata[] modLists = await _client.LoadLists();
+ _listItems = modLists.ToList();
+ StateHasChanged();
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex);
+ }
+
+ return base.OnAfterRenderAsync(firstRender);
+ }
+
+}
\ No newline at end of file
diff --git a/Wabbajack.App.Blazor/Pages/Gallery.razor.cs b/Wabbajack.App.Blazor/Pages/Gallery.razor.cs
deleted file mode 100644
index 9f75c15b..00000000
--- a/Wabbajack.App.Blazor/Pages/Gallery.razor.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Wabbajack.DTOs;
-
-namespace Wabbajack.App.Blazor.Pages;
-
-public partial class Gallery
-{
- List _listItems = new();
-
- protected override async Task OnAfterRenderAsync(bool firstRender)
- {
- if (!firstRender) return base.OnAfterRenderAsync(firstRender);
-
- try
- {
- ModlistMetadata[] modLists = await _client.LoadLists();
- _listItems = modLists.ToList();
- StateHasChanged();
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex);
- }
-
- return base.OnAfterRenderAsync(firstRender);
- }
-}
\ No newline at end of file
diff --git a/Wabbajack.App.Blazor/Store/DownloadState.cs b/Wabbajack.App.Blazor/Store/DownloadState.cs
index ea1e635a..1831c95d 100644
--- a/Wabbajack.App.Blazor/Store/DownloadState.cs
+++ b/Wabbajack.App.Blazor/Store/DownloadState.cs
@@ -1,6 +1,5 @@
using Fluxor;
using Wabbajack.DTOs;
-using Wabbajack.RateLimiter;
namespace Wabbajack.App.Blazor.Store;
@@ -9,16 +8,14 @@ public class DownloadState
{
public DownloadStateEnum CurrentDownloadState { get; }
public ModlistMetadata CurrentModlistMetadata { get; }
- public Percent CurrentDownloadProgress { get; }
// Required for initial state.
private DownloadState() { }
- public DownloadState(DownloadStateEnum newState, ModlistMetadata newModlist, Percent newProgress)
+ public DownloadState(DownloadStateEnum newState, ModlistMetadata newModlist)
{
CurrentDownloadState = newState;
CurrentModlistMetadata = newModlist;
- CurrentDownloadProgress = newProgress;
}
public enum DownloadStateEnum
@@ -34,13 +31,11 @@ public class UpdateDownloadState
{
public DownloadState.DownloadStateEnum State { get; }
public ModlistMetadata Modlist { get; }
- public Percent DownloadProgress { get; }
- public UpdateDownloadState(DownloadState.DownloadStateEnum state, ModlistMetadata modlist, Percent? currentDownloadProgress)
+ public UpdateDownloadState(DownloadState.DownloadStateEnum state, ModlistMetadata modlist)
{
State = state;
Modlist = modlist;
- DownloadProgress = currentDownloadProgress ?? Percent.Zero;
}
}
@@ -48,5 +43,5 @@ public static class DownloadStateReducers
{
[ReducerMethod]
public static DownloadState ReduceChangeDownloadState(DownloadState state, UpdateDownloadState action) =>
- new(action.State, action.Modlist, action.DownloadProgress);
+ new(action.State, action.Modlist);
}
\ No newline at end of file