Upgrade to Vue3 and Element Plus (#1374)

* Update Vue devtools

* upgrade vue pinia element-plus vue-i18n, add vite

* fix: i18n

* global components

* change v-deep

* upgrade vue-lazyload

* data table

* update enlint and safe-dialog

* package.json and vite.config.js

* el-icon

* el-message

* vue 2 -> vue3 migration changes

* $pinia

* dialog

* el-popover slot

* lint

* chore

* slot

* scss

* remote state access

* misc

* jsconfig

* el-button size mini -> small

* :model-value

* ElMessageBox

* datatable

* remove v-lazyload

* template #dropdown

* mini -> small

* css

* byebye hideTooltips

* use sass-embedded

* Update SQLite, remove unneeded libraries

* Fix shift remove local avatar favorites

* Electron arm64

* arm64 support

* bye pug

* f-word vite hah

* misc

* remove safe dialog component

* Add self invite to launch dialog

* Fix errors

* Icons 1

* improve localfavorite loading performance

* improve favorites world item performance

* dialog visibility changes for Element Plus

* clear element plus error

* import performance

* revert App.vue hah

* hah

* Revert "Add self invite to launch dialog"

This reverts commit 4801cfad58.

* Toggle self invite/open in-game

* Self invite on launch dialog

* el-button icon

* el-icon

* fix user dialog tab switching logic

* fix PlayerList

* Formatting changes

* More icons

* Fix friend log table

* loading margin

* fix markdown

* fix world dialog tab switching issue

* Fixes and formatting

* fix: global i18n.t export

* fix favorites world tab not working

* Create instance, displayName

* Remove group members sort by userId

* Fix loading dialog tabs on swtich

* Star

* charts console.warn

* wip: fix charts

* wip: fix charts

* wip: charts composables

* fix favorite item tooltip warning

* Fixes and formatting

* Clean up image dialogs

* Remove unused method

* Fix platform/size border

* Fix platform/size border

* $vr

* fix friendExportDialogVisible binding

* ElMessageBox and Settings

* Login formatting

* Rename VR overlay query

* Fix image popover and userdialog badges

* Formatting

* Big buttons

* Fixes, update Cef

* Fix gameLog table nav buttons jumping around while using nav buttons

* Fix z-index

* vr overlay

* vite input add theme

* defineAsyncComponent

* ISO 639-1

* fix i18n

* clean t

* Formatting, fix calendar, rotate arrows

* Show user status when user is offline

* Fix VR overlay

* fix theme and clean up

* split InstanceActivity

* tweak

* Fix VR overlay formatting

* fix scss var

* AppDebug hahahaha

* Years

* remove reactive

* improve perf

* state hah…

* fix user rendering poblems when user object is not yet loaded

* improve perf

* Update avatar/world image uploader, licenses, remove previous images dialog (old images are now deleted)

* improve perf 1

* Suppress stray errors

* fix traveling location display issue

* Fix empty instance creator

* improve friend list refresh performance

* fix main charts

* fix chart

* Fix darkmode

* Fix avatar dialog tags

---------

Co-authored-by: pa <maplenagisa@gmail.com>
This commit is contained in:
Natsumi
2025-09-12 10:45:24 +12:00
committed by GitHub
parent b233bbc299
commit 3324d0d279
249 changed files with 12948 additions and 19815 deletions

View File

@@ -17,7 +17,6 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using librsync.net;
using Microsoft.Toolkit.Uwp.Notifications;
using Microsoft.Win32;
using NLog;
@@ -123,12 +122,6 @@ namespace VRCX
return File.Exists(Path.Join(Program.AppDataDirectory, "update.exe"));
}
public override void ExecuteAppFunction(string function, string json)
{
if (MainForm.Instance?.Browser != null && !MainForm.Instance.Browser.IsLoading && MainForm.Instance.Browser.CanExecuteJavascriptInMainFrame)
MainForm.Instance.Browser.ExecuteScriptAsync($"$app.{function}", json);
}
public override void ExecuteVrFeedFunction(string function, string json)
{
Program.VRCXVRInstance.ExecuteVrFeedFunction(function, json);

View File

@@ -21,7 +21,7 @@ namespace VRCX
public override void VrInit()
{
if (MainForm.Instance?.Browser != null && !MainForm.Instance.Browser.IsLoading && MainForm.Instance.Browser.CanExecuteJavascriptInMainFrame)
MainForm.Instance.Browser.ExecuteScriptAsync("$app.store.vr.vrInit", "");
MainForm.Instance.Browser.ExecuteScriptAsync("$pinia.vr.vrInit", "");
}
public override void ToggleSystemMonitor(bool enabled)

View File

@@ -36,7 +36,7 @@ namespace VRCX
// TODO: fix this throwing an exception for being called before the browser is ready. somehow it gets past the checks
if (MainForm.Instance?.Browser != null && !MainForm.Instance.Browser.IsLoading && MainForm.Instance.Browser.CanExecuteJavascriptInMainFrame)
MainForm.Instance.Browser.ExecuteScriptAsync("$app.store.game.updateIsGameRunning", isGameRunning, isSteamVRRunning, isHmdAfk);
MainForm.Instance.Browser.ExecuteScriptAsync("$pinia.game.updateIsGameRunning", isGameRunning, isSteamVRRunning, isHmdAfk);
}
public override bool IsGameRunning()

View File

@@ -6,7 +6,6 @@ using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using librsync.net;
using Newtonsoft.Json;
using NLog;
@@ -20,10 +19,10 @@ namespace VRCX
public void Init()
{
}
public JsonSerializerSettings JsonSerializerSettings = new JsonSerializerSettings
{
Error = delegate(object _, Newtonsoft.Json.Serialization.ErrorEventArgs args)
Error = delegate (object _, Newtonsoft.Json.Serialization.ErrorEventArgs args)
{
args.ErrorContext.Handled = true;
}
@@ -43,22 +42,6 @@ namespace VRCX
return (hash[3] << 8) | hash[4];
}
public string SignFile(string blob)
{
var fileData = Convert.FromBase64String(blob);
using var sig = Librsync.ComputeSignature(new MemoryStream(fileData));
using var memoryStream = new MemoryStream();
sig.CopyTo(memoryStream);
var sigBytes = memoryStream.ToArray();
return Convert.ToBase64String(sigBytes);
}
public string FileLength(string blob)
{
var fileData = Convert.FromBase64String(blob);
return fileData.Length.ToString();
}
public void OpenLink(string url)
{
if (url.StartsWith("http://") ||
@@ -70,7 +53,7 @@ namespace VRCX
});
}
}
public string GetLaunchCommand()
{
var command = StartupArgs.LaunchArguments.LaunchCommand;
@@ -102,7 +85,7 @@ namespace VRCX
var filePath = Path.Join(Program.AppDataDirectory, "custom.css");
if (File.Exists(filePath))
return File.ReadAllText(filePath);
return string.Empty;
}
@@ -111,7 +94,7 @@ namespace VRCX
var filePath = Path.Join(Program.AppDataDirectory, "custom.js");
if (File.Exists(filePath))
return File.ReadAllText(filePath);
return string.Empty;
}

View File

@@ -17,7 +17,6 @@ namespace VRCX
public abstract void RestartApplication(bool isUpgrade);
public abstract bool CheckForUpdateExe();
public abstract void ExecuteAppFunction(string function, string json);
public abstract void ExecuteVrFeedFunction(string function, string json);
public abstract void ExecuteVrOverlayFunction(string function, string json);
public abstract void FocusWindow();

View File

@@ -51,10 +51,6 @@ namespace VRCX
return false;
}
public override void ExecuteAppFunction(string function, string json)
{
}
public override void ExecuteVrFeedFunction(string function, string json)
{
Program.VRCXVRInstance.ExecuteVrFeedFunction(function, json);

View File

@@ -26,7 +26,7 @@ namespace VRCX
}
if (MainForm.Instance?.Browser != null && !MainForm.Instance.Browser.IsLoading && MainForm.Instance.Browser.CanExecuteJavascriptInMainFrame)
MainForm.Instance.Browser.ExecuteScriptAsync("$app.store.vrcx.dragEnterCef", file);
MainForm.Instance.Browser.ExecuteScriptAsync("$pinia.vrcx.dragEnterCef", file);
dragData.Dispose();
return false;

View File

@@ -90,7 +90,7 @@ namespace VRCX
#if !LINUX
if (MainForm.Instance?.Browser != null && !MainForm.Instance.Browser.IsLoading && MainForm.Instance.Browser.CanExecuteJavascriptInMainFrame)
MainForm.Instance.Browser.ExecuteScriptAsync("$app.store.vrcx.ipcEvent", packet);
MainForm.Instance.Browser.ExecuteScriptAsync("$pinia.vrcx.ipcEvent", packet);
#endif
}

View File

@@ -297,7 +297,7 @@ namespace VRCX
m_LogQueue.Enqueue(logLine);
#else
if (MainForm.Instance != null && MainForm.Instance.Browser != null)
MainForm.Instance.Browser.ExecuteScriptAsync("$app.store.gameLog.addGameLogEvent", logLine);
MainForm.Instance.Browser.ExecuteScriptAsync("$pinia.gameLog.addGameLogEvent", logLine);
#endif
}

View File

@@ -190,13 +190,13 @@ namespace VRCX
var dashboardHandle = 0UL;
_wristOverlay = new OffScreenBrowser(
Program.LaunchDebug ? "http://localhost:9000/vr.html?1": "file://vrcx/vr.html?1",
Program.LaunchDebug ? "http://localhost:9000/vr.html?wrist" : "file://vrcx/vr.html?wrist",
512,
512
);
_hmdOverlay = new OffScreenBrowser(
Program.LaunchDebug ? "http://localhost:9000/vr.html?2": "file://vrcx/vr.html?2",
Program.LaunchDebug ? "http://localhost:9000/vr.html?hmd" : "file://vrcx/vr.html?hmd",
1024,
1024
);
@@ -846,7 +846,7 @@ namespace VRCX
if (_wristOverlay == null) return;
// if (_wristOverlay.IsLoading)
// Restart();
_wristOverlay.ExecuteScriptAsync($"$app.{function}", json);
_wristOverlay.ExecuteScriptAsync($"$vr.{function}", json);
}
public override ConcurrentQueue<KeyValuePair<string, string>> GetExecuteVrOverlayFunctionQueue()
@@ -859,7 +859,7 @@ namespace VRCX
if (_hmdOverlay == null) return;
// if (_hmdOverlay.IsLoading)
// Restart();
_hmdOverlay.ExecuteScriptAsync($"$app.{function}", json);
_hmdOverlay.ExecuteScriptAsync($"$vr.{function}", json);
}
}
}

View File

@@ -141,13 +141,13 @@ namespace VRCX
var overlayHandle2 = 0UL;
_wristOverlay = new OffScreenBrowserLegacy(
"file://vrcx/vr.html?1",
Program.LaunchDebug ? "http://localhost:9000/vr.html?wrist" : "file://vrcx/vr.html?wrist",
512,
512
);
_hmdOverlay = new OffScreenBrowserLegacy(
"file://vrcx/vr.html?2",
Program.LaunchDebug ? "http://localhost:9000/vr.html?hmd" : "file://vrcx/vr.html?hmd",
1024,
1024
);
@@ -763,7 +763,7 @@ namespace VRCX
return err;
}
public override ConcurrentQueue<KeyValuePair<string, string>> GetExecuteVrFeedFunctionQueue()
{
throw new NotImplementedException();
@@ -774,9 +774,9 @@ namespace VRCX
if (_wristOverlay == null) return;
if (_wristOverlay.IsLoading)
Restart();
_wristOverlay.ExecuteScriptAsync($"$app.{function}", json);
_wristOverlay.ExecuteScriptAsync($"$vr.{function}", json);
}
public override ConcurrentQueue<KeyValuePair<string, string>> GetExecuteVrOverlayFunctionQueue()
{
throw new NotImplementedException();
@@ -787,7 +787,7 @@ namespace VRCX
if (_hmdOverlay == null) return;
if (_hmdOverlay.IsLoading)
Restart();
_hmdOverlay.ExecuteScriptAsync($"$app.{function}", json);
_hmdOverlay.ExecuteScriptAsync($"$vr.{function}", json);
}
}
}

View File

@@ -22,7 +22,7 @@ namespace VRCX
InitializeComponent();
_browser1 = new ChromiumWebBrowser(
Path.Join(Program.BaseDirectory, "html/vr.html?1")
Path.Join(Program.BaseDirectory, "html/vr.html?wrist")
)
{
DragHandler = new CefNoopDragHandler(),
@@ -35,7 +35,7 @@ namespace VRCX
};
_browser2 = new ChromiumWebBrowser(
Path.Join(Program.BaseDirectory, "html/vr.html?2")
Path.Join(Program.BaseDirectory, "html/vr.html?hmd")
)
{
DragHandler = new CefNoopDragHandler(),

View File

@@ -61,14 +61,6 @@
<EmbeddedResource Remove="DBMerger\**" />
<None Remove="DBMerger\**" />
</ItemGroup>
<ItemGroup>
<Reference Include="Blake2Sharp">
<HintPath>libs\Blake2Sharp.dll</HintPath>
</Reference>
<Reference Include="librsync.net">
<HintPath>libs\librsync.net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.manifest" />
<None Include="..\Version">
@@ -88,8 +80,8 @@
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="CefSharp.OffScreen.NETCore" Version="138.0.340" />
<PackageReference Include="CefSharp.WinForms.NETCore" Version="138.0.340" />
<PackageReference Include="CefSharp.OffScreen.NETCore" Version="139.0.280" />
<PackageReference Include="CefSharp.WinForms.NETCore" Version="139.0.280" />
<PackageReference Include="DiscordRichPresence" Version="1.6.1.70" />
<PackageReference Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />

View File

@@ -49,14 +49,6 @@
<ApplicationIcon>..\VRCX.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Blake2Sharp">
<HintPath>libs\Blake2Sharp.dll</HintPath>
</Reference>
<Reference Include="librsync.net">
<HintPath>libs\librsync.net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.manifest" />
<None Include="..\Version">

View File

@@ -1,4 +1,4 @@
<Project>
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath>obj1\</BaseIntermediateOutputPath>
<OutputPath>..\build\Electron\</OutputPath>
@@ -54,14 +54,6 @@
<ApplicationIcon>..\VRCX.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Blake2Sharp">
<HintPath>libs\Blake2Sharp.dll</HintPath>
</Reference>
<Reference Include="librsync.net">
<HintPath>libs\librsync.net.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="app.manifest" />
<None Include="..\Version">

Binary file not shown.

View File

@@ -1,11 +1,3 @@
### librsync.net.dll
- [https://github.com/braddodson/librsync.net](https://github.com/braddodson/librsync.net)
### Blake2Sharp.dll
- [https://github.com/BLAKE2/BLAKE2/tree/master/csharp](https://github.com/BLAKE2/BLAKE2/tree/master/csharp)
### openvr_api.dll
- [https://github.com/ValveSoftware/openvr](https://github.com/ValveSoftware/openvr)
### sqlite3.dll
- [https://www.sqlite.org/index.html](https://www.sqlite.org/index.html)
- [https://github.com/ValveSoftware/openvr](https://github.com/ValveSoftware/openvr)

Binary file not shown.