diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index e2c6a2eb..8dde5516 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -1361,6 +1361,18 @@
是否永久删除用户数据
+
+ 前往登录
+
+
+ 当前未登录胡桃账号,上传深渊数据无法获赠胡桃云时长
+
+
+ 继续上传
+
+
+ 上传深渊数据
+
查看更新日志
@@ -1733,12 +1745,6 @@
保存游戏路径失败
-
- 当前未登录胡桃账号,上传深渊数据无法获赠胡桃云时长
-
-
- 上传深渊数据
-
用户 [{0}] 添加成功
diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
index 3b416e63..0e3191fd 100644
--- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
+++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
@@ -181,6 +181,7 @@
+
@@ -354,6 +355,11 @@
+
+
+ MSBuild:Compile
+
+
MSBuild:Compile
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Dialog/SpiralAbyssUploadRecordHomaNotLoginDialog.xaml b/src/Snap.Hutao/Snap.Hutao/View/Dialog/SpiralAbyssUploadRecordHomaNotLoginDialog.xaml
new file mode 100644
index 00000000..831e0067
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/View/Dialog/SpiralAbyssUploadRecordHomaNotLoginDialog.xaml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Dialog/SpiralAbyssUploadRecordHomaNotLoginDialog.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Dialog/SpiralAbyssUploadRecordHomaNotLoginDialog.xaml.cs
new file mode 100644
index 00000000..d9a24c7a
--- /dev/null
+++ b/src/Snap.Hutao/Snap.Hutao/View/Dialog/SpiralAbyssUploadRecordHomaNotLoginDialog.xaml.cs
@@ -0,0 +1,24 @@
+// Copyright (c) DGP Studio. All rights reserved.
+// Licensed under the MIT license.
+
+using Microsoft.UI.Xaml.Controls;
+
+namespace Snap.Hutao.View.Dialog;
+
+internal sealed partial class SpiralAbyssUploadRecordHomaNotLoginDialog : ContentDialog
+{
+ private readonly ITaskContext taskContext;
+
+ public SpiralAbyssUploadRecordHomaNotLoginDialog(IServiceProvider serviceProvider)
+ {
+ InitializeComponent();
+
+ taskContext = serviceProvider.GetRequiredService();
+ }
+
+ public async ValueTask ConfirmAsync()
+ {
+ await taskContext.SwitchToMainThreadAsync();
+ return await ShowAsync() is ContentDialogResult.Primary;
+ }
+}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs
index c1ea5089..cac9964c 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyss/SpiralAbyssRecordViewModel.cs
@@ -6,9 +6,12 @@ using Microsoft.UI.Xaml.Controls;
using Snap.Hutao.Factory.ContentDialog;
using Snap.Hutao.Message;
using Snap.Hutao.Service.Hutao;
+using Snap.Hutao.Service.Navigation;
using Snap.Hutao.Service.Notification;
using Snap.Hutao.Service.SpiralAbyss;
using Snap.Hutao.Service.User;
+using Snap.Hutao.View.Dialog;
+using Snap.Hutao.View.Page;
using Snap.Hutao.ViewModel.Complex;
using Snap.Hutao.ViewModel.User;
using Snap.Hutao.Web.Hutao.Response;
@@ -29,6 +32,7 @@ internal sealed partial class SpiralAbyssRecordViewModel : Abstraction.ViewModel
private readonly ISpiralAbyssRecordService spiralAbyssRecordService;
private readonly IContentDialogFactory contentDialogFactory;
private readonly HutaoSpiralAbyssClient spiralAbyssClient;
+ private readonly INavigationService navigationService;
private readonly IInfoBarService infoBarService;
private readonly ITaskContext taskContext;
private readonly IUserService userService;
@@ -135,12 +139,14 @@ internal sealed partial class SpiralAbyssRecordViewModel : Abstraction.ViewModel
{
if (!hutaoUserOptions.IsLoggedIn)
{
- ContentDialogResult result = await contentDialogFactory
- .CreateForConfirmCancelAsync(SH.ViewModelSpiralAbyssUploadRecordHomaNotLoginTitle, SH.ViewModelSpiralAbyssUploadRecordHomaNotLoginContent)
+ SpiralAbyssUploadRecordHomaNotLoginDialog dialog = await contentDialogFactory
+ .CreateInstanceAsync()
.ConfigureAwait(false);
- if (result is not ContentDialogResult.Primary)
+ if (!await dialog.ConfirmAsync().ConfigureAwait(false))
{
+ await taskContext.SwitchToMainThreadAsync();
+ await navigationService.NavigateAsync(INavigationAwaiter.Default, true).ConfigureAwait(false);
return;
}
}