-
-
-
-
+
-
학원을 위한 통합 플랫폼
-
-
+
+ @if (!UserStateService.isLogin)
+ {
+
+ 학원을 위한 통합 플랫폼
+
+
+
+
+
+ }
+ else
+ {
+
+ }
+
+ @*
*@
+
+
-
-
Terms of Service · Privacy Policy · Contact Us
-
© 2024 AcaMate. All rights reserved.
+
+
+ © 2024 AcaMate. All rights reserved.
+
diff --git a/Program/Views/Academy/AcademyIntro.razor.cs b/Program/Views/Academy/AcademyIntro.razor.cs
index d123ded..3f99336 100644
--- a/Program/Views/Academy/AcademyIntro.razor.cs
+++ b/Program/Views/Academy/AcademyIntro.razor.cs
@@ -1,7 +1,88 @@
+using Front.Program.Models;
+using Front.Program.Services;
+using Front.Program.ViewModels;
using Microsoft.AspNetCore.Components;
+using Microsoft.AspNetCore.Components.Routing;
namespace Front.Program.Views.Academy;
-public partial class AcademyIntro : ComponentBase
+public partial class AcademyIntro : ComponentBase, IDisposable
{
+ [Inject] NavigationManager Navigation { get; set; } = default!;
+ [Inject] StorageService StorageService { get; set; } = default!;
+ [Inject] QueryParamService QueryParamService { get; set; } = default!;
+ [Inject] UserStateService UserStateService { get; set; } = default!;
+
+ private bool _isProcessing = false;
+
+
+ protected Models.SimpleAcademy[] academyItems = Array.Empty
();
+
+ protected override async void OnInitialized()
+ {
+ Navigation.LocationChanged += HandleLocationChanged;
+ HandleLocationChanged(this, new LocationChangedEventArgs(Navigation.Uri, false));
+ if (!UserStateService.isFirstCheck) await UserStateService.GetUserDataAsync();
+
+ academyItems = new[]
+ {
+ new SimpleAcademy{ bid = "AA0000", business_name = "테스트 학원1"},
+ new SimpleAcademy{ bid = "AA0001", business_name = "테스트 학원2"},
+ new SimpleAcademy{ bid = "AA0002", business_name = "테스트 학원3"},
+ new SimpleAcademy{ bid = "AA0003", business_name = "테스트 학원4"},
+ new SimpleAcademy{ bid = "AA0004", business_name = "테스트 학원5"},
+ new SimpleAcademy{ bid = "AA0005", business_name = "테스트 학원6"},
+ new SimpleAcademy{ bid = "AA0006", business_name = "테스트 학원7"},
+
+ };
+
+ await InvokeAsync(StateHasChanged);
+ }
+
+ public void Dispose()
+ {
+ Navigation.LocationChanged -= HandleLocationChanged;
+ }
+
+ private async void HandleLocationChanged(object? sender, LocationChangedEventArgs e)
+ {
+ try
+ {
+ // 다중 실행 방지
+ if (_isProcessing) return;
+ _isProcessing = true;
+
+ var uri = Navigation.ToAbsoluteUri(Navigation.Uri);
+ Console.WriteLine($"리다이렉트된 URI: {uri}");
+
+ // 쿼리 파라미터가 있는 경우에만 처리
+ if (!string.IsNullOrEmpty(uri.Query))
+ {
+ var queryParam = QueryParamService.ParseQueryParam(uri);
+ await QueryParamService.AuthCheck(queryParam, StorageService);
+
+ // 유저 정보 확인하는거 (로그인 했으니 값 가져와야지)
+ await UserStateService.GetUserDataAsync();
+
+ // 쿼리 파라미터를 제거한 기본 URI로 리다이렉트
+ var baseUri = uri.GetLeftPart(UriPartial.Path);
+ Console.WriteLine($"리다이렉트할 URI: {baseUri}");
+ await InvokeAsync(StateHasChanged); // StateHasChanged를 호출하여 UI 업데이트
+ Navigation.NavigateTo(baseUri, forceLoad: false);
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"Error in HandleLocationChanged: {ex.Message}");
+ }
+ finally
+ {
+ _isProcessing = false;
+ }
+ }
+
+ protected void OnClickLogin()
+ {
+ Navigation.NavigateTo("/am/auth");
+ }
}
\ No newline at end of file
diff --git a/Program/Views/Academy/TopNavAcademy.razor b/Program/Views/Academy/TopNavAcademy.razor
index 405f9e3..0d18900 100644
--- a/Program/Views/Academy/TopNavAcademy.razor
+++ b/Program/Views/Academy/TopNavAcademy.razor
@@ -1,13 +1,36 @@
-
-
AcaMate
+
+
+
+ @if (isAcademyDropdownOpen)
+ {
+
+ }
-
\ No newline at end of file
+
diff --git a/Program/Views/Academy/TopNavAcademy.razor.cs b/Program/Views/Academy/TopNavAcademy.razor.cs
index 43f1486..5dfce84 100644
--- a/Program/Views/Academy/TopNavAcademy.razor.cs
+++ b/Program/Views/Academy/TopNavAcademy.razor.cs
@@ -1,22 +1,27 @@
using Front.Program.ViewModels;
+using Front.Program.Services;
using Microsoft.AspNetCore.Components;
+using System.Net.Http.Json;
+using System.Runtime.InteropServices.JavaScript;
+using System.Text.Json;
+using Front.Program.Models;
namespace Front.Program.Views.Academy;
public partial class TopNavAcademy : ComponentBase
{
- [Inject] UserViewModel UserViewModel { get; set; } = default!;
+ [Inject] UserStateService UserStateService { get; set; } = default!;
-
protected bool isOpen = false;
+ protected bool isAcademyDropdownOpen = false;
+ protected Models.SimpleAcademy[] academyItems = Array.Empty
();
protected override async Task OnInitializedAsync()
{
Console.WriteLine("TOPNAV_OnInitializedAsync");
-
- if (string.IsNullOrEmpty(UserViewModel.UserData.Name))
- {
- await UserViewModel.GetUserDataAsync();
- }
+ }
+
+ protected void ToggleAcademyDropdown() {
+ isAcademyDropdownOpen = !isAcademyDropdownOpen;
}
}
\ No newline at end of file
diff --git a/Program/Views/Project/About.razor.cs b/Program/Views/Project/About.razor.cs
index 087f938..6c5e0df 100644
--- a/Program/Views/Project/About.razor.cs
+++ b/Program/Views/Project/About.razor.cs
@@ -17,7 +17,7 @@ public partial class About : ComponentBase, IDisposable
[Inject]
QueryParamService QueryParamService { get; set; } = default!;
- [Inject] UserViewModel UserViewModel { get; set; } = default!;
+ [Inject] UserStateService UserStateService { get; set; } = default!;
private bool _isProcessing = false;
@@ -32,12 +32,6 @@ public partial class About : ComponentBase, IDisposable
Navigation.LocationChanged -= HandleLocationChanged;
}
- private async Task OnClickEvent()
- {
- // NavigationManager.NavigateTo("/redirectpage");
- Console.WriteLine("Redirecting to redirect page");
- }
-
private async void HandleLocationChanged(object? sender, LocationChangedEventArgs e)
{
try
@@ -56,7 +50,7 @@ public partial class About : ComponentBase, IDisposable
await QueryParamService.AuthCheck(queryParam, StorageService);
// 유저 정보 확인하는거 (로그인 했으니 값 가져와야지)
- await UserViewModel.GetUserDataAsync();
+ await UserStateService.GetUserDataAsync();
// 쿼리 파라미터를 제거한 기본 URI로 리다이렉트
var baseUri = uri.GetLeftPart(UriPartial.Path);
diff --git a/Program/Views/Project/Common/PageIndicator.razor b/Program/Views/Project/Common/PageIndicator.razor
new file mode 100644
index 0000000..0d4fb88
--- /dev/null
+++ b/Program/Views/Project/Common/PageIndicator.razor
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/Program/Views/Project/Common/PageIndicator.razor.cs b/Program/Views/Project/Common/PageIndicator.razor.cs
new file mode 100644
index 0000000..3669762
--- /dev/null
+++ b/Program/Views/Project/Common/PageIndicator.razor.cs
@@ -0,0 +1,7 @@
+using Front.Program.Models;
+using Microsoft.AspNetCore.Components;
+
+namespace Front.Program.Views.Project.Common;
+
+public partial class PageIndicator : ComponentBase
+{ }
diff --git a/Program/Views/Project/RedirectPage.razor b/Program/Views/Project/Common/RedirectPage.razor
similarity index 100%
rename from Program/Views/Project/RedirectPage.razor
rename to Program/Views/Project/Common/RedirectPage.razor
diff --git a/Program/Views/Project/RedirectPage.razor.cs b/Program/Views/Project/Common/RedirectPage.razor.cs
similarity index 86%
rename from Program/Views/Project/RedirectPage.razor.cs
rename to Program/Views/Project/Common/RedirectPage.razor.cs
index 94f9f91..2f79166 100644
--- a/Program/Views/Project/RedirectPage.razor.cs
+++ b/Program/Views/Project/Common/RedirectPage.razor.cs
@@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Components;
-namespace Front.Program.Views.Project;
+namespace Front.Program.Views.Project.Common;
public partial class RedirectPage : ComponentBase
{
diff --git a/Program/Views/Project/TopBanner.razor b/Program/Views/Project/Common/TopBanner.razor
similarity index 100%
rename from Program/Views/Project/TopBanner.razor
rename to Program/Views/Project/Common/TopBanner.razor
diff --git a/Program/Views/Project/TopBanner.razor.cs b/Program/Views/Project/Common/TopBanner.razor.cs
similarity index 66%
rename from Program/Views/Project/TopBanner.razor.cs
rename to Program/Views/Project/Common/TopBanner.razor.cs
index e677b5a..3cf6671 100644
--- a/Program/Views/Project/TopBanner.razor.cs
+++ b/Program/Views/Project/Common/TopBanner.razor.cs
@@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Components;
-namespace Front.Program.Views.Project;
+namespace Front.Program.Views.Project.Common;
public partial class TopBanner : ComponentBase
{
diff --git a/Program/Views/Project/TopProjectNav.razor b/Program/Views/Project/Common/TopProjectNav.razor
similarity index 97%
rename from Program/Views/Project/TopProjectNav.razor
rename to Program/Views/Project/Common/TopProjectNav.razor
index 9332365..b3636f3 100644
--- a/Program/Views/Project/TopProjectNav.razor
+++ b/Program/Views/Project/Common/TopProjectNav.razor
@@ -11,7 +11,7 @@
isOpen = !isOpen">Join
isOpen = !isOpen">What's New
- @if (!UserViewModel.isLogin)
+ @if (!UserStateService.isLogin)
{