From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.Client.Blazor/Util/DefaultGlobalLoadingSpinner.cs | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/HotelPms.Client.Blazor/Util/DefaultGlobalLoadingSpinner.cs b/HotelPms.Client.Blazor/Util/DefaultGlobalLoadingSpinner.cs
new file mode 100644
index 0000000..2e197d2
--- /dev/null
+++ b/HotelPms.Client.Blazor/Util/DefaultGlobalLoadingSpinner.cs
@@ -0,0 +1,55 @@
+using Microsoft.JSInterop;
+
+namespace HotelPms.Client.Blazor.Util
+{
+ /// <summary>
+ /// 汎用待ち画面
+ /// </summary>
+ public class DefaultGlobalLoadingSpinner : IGlobalLoadingSpinner
+ {
+ static object Locker = new object();
+ int SpinnerCount = 1;
+
+ IJSRuntime _jsRuntime;
+
+ public DefaultGlobalLoadingSpinner(IJSRuntime jsRuntime)
+ {
+ _jsRuntime = jsRuntime;
+ }
+
+ public async Task ShowAsync()
+ {
+ EnvironmentSetting.Debug($"Locker Start:{DateTime.Now.ToString("HH:mm:ss fff")}");
+ lock (Locker)
+ {
+ SpinnerCount++;
+ }
+
+ EnvironmentSetting.Debug($"InvokeVoidAsync Start:{DateTime.Now.ToString("HH:mm:ss fff")}");
+ await this._jsRuntime.InvokeVoidAsync("NetCallJs.showGlobalLoadingSpinner"); //0.5秒
+ EnvironmentSetting.Debug($"InvokeVoidAsync End:{DateTime.Now.ToString("HH:mm:ss fff")}");
+ }
+
+ public async Task HideAsync()
+ {
+ lock (Locker)
+ {
+ SpinnerCount--;
+ if (SpinnerCount < 0)
+ {
+ SpinnerCount = 0;
+ }
+ }
+
+ if (SpinnerCount == 0)
+ {
+ await this._jsRuntime.InvokeVoidAsync("NetCallJs.hideGlobalLoadingSpinner");
+ }
+ }
+
+ public async Task HideLogoAsync()
+ {
+ await this._jsRuntime.InvokeVoidAsync("NetCallJs.hideGlobalLoadingSpinnerLogo");
+ }
+ }
+}
--
Gitblit v1.10.0