diff --git a/src/OpenWish.Web.Client/Components/Pages/Wishlists/AddItem.razor b/src/OpenWish.Web.Client/Components/Pages/Wishlists/AddItem.razor
index 527acbc..4fcf52b 100644
--- a/src/OpenWish.Web.Client/Components/Pages/Wishlists/AddItem.razor
+++ b/src/OpenWish.Web.Client/Components/Pages/Wishlists/AddItem.razor
@@ -6,7 +6,7 @@
@inject IWishlistService WishlistService
@inject NavigationManager NavigationManager
-@rendermode InteractiveAuto
+@rendermode InteractiveServer
Add Item to Wishlist
diff --git a/src/OpenWish.Web.Client/Components/Pages/Wishlists/Index.razor b/src/OpenWish.Web.Client/Components/Pages/Wishlists/Index.razor
index 2b950cf..3060447 100644
--- a/src/OpenWish.Web.Client/Components/Pages/Wishlists/Index.razor
+++ b/src/OpenWish.Web.Client/Components/Pages/Wishlists/Index.razor
@@ -4,12 +4,11 @@
@using Microsoft.Extensions.Logging
@using OpenWish.Web.Client.Components.Wishlist
-@inject NavigationManager NavigationManager
@inject ILogger Logger
@inject IUserContextService UserContextService
@inject IWishlistService WishlistService
-@rendermode InteractiveAuto
+@rendermode InteractiveServer
My Wishlists
@@ -37,6 +36,10 @@ else
}
+
+
RenderMode: @RendererInfo.Name , Interactive: @RendererInfo.IsInteractive.ToString()
+
+
@code {
private IEnumerable? wishlists;
private string? _userId;
diff --git a/src/OpenWish.Web.Client/Components/Pages/Wishlists/NewWishlist.razor b/src/OpenWish.Web.Client/Components/Pages/Wishlists/NewWishlist.razor
index eafac96..a910867 100644
--- a/src/OpenWish.Web.Client/Components/Pages/Wishlists/NewWishlist.razor
+++ b/src/OpenWish.Web.Client/Components/Pages/Wishlists/NewWishlist.razor
@@ -8,7 +8,7 @@
@inject IUserContextService UserContextService
@inject ILogger Logger
-@rendermode InteractiveAuto
+@rendermode InteractiveServer
Create a Wishlist
diff --git a/src/OpenWish.Web.Client/Components/Pages/Wishlists/WishlistDetails.razor b/src/OpenWish.Web.Client/Components/Pages/Wishlists/WishlistDetails.razor
index aa6cf37..2ea1aad 100644
--- a/src/OpenWish.Web.Client/Components/Pages/Wishlists/WishlistDetails.razor
+++ b/src/OpenWish.Web.Client/Components/Pages/Wishlists/WishlistDetails.razor
@@ -7,7 +7,7 @@
@inject IUserContextService UserContextService
@inject IWishlistService WishlistService
-@rendermode InteractiveAuto
+@rendermode InteractiveServer
@(_wishlist is not null ? _wishlist?.Name : "") Wishlist
diff --git a/src/OpenWish.Web.Client/Extensions/ServiceCollectionExtensions.cs b/src/OpenWish.Web.Client/Extensions/ServiceCollectionExtensions.cs
index 17c6863..1382688 100644
--- a/src/OpenWish.Web.Client/Extensions/ServiceCollectionExtensions.cs
+++ b/src/OpenWish.Web.Client/Extensions/ServiceCollectionExtensions.cs
@@ -10,11 +10,9 @@ public static class ServiceCollectionExtensions
{
public static IServiceCollection AddOpenWishWasmClientServices(this IServiceCollection services, IConfiguration configuration)
{
- // authentication
- //services.AddScoped();
//services.RemoveAll();
// https://jonhilton.net/blazor-share-auth-state/
- services.AddSingleton();
+ // services.TryAddScoped();
services.AddScoped();
services.AddScoped();
diff --git a/src/OpenWish.Web.Client/Program.cs b/src/OpenWish.Web.Client/Program.cs
index 6d01a66..96e5d0a 100644
--- a/src/OpenWish.Web.Client/Program.cs
+++ b/src/OpenWish.Web.Client/Program.cs
@@ -13,7 +13,10 @@
builder.Services.AddAuthorizationCore();
builder.Services.AddCascadingAuthenticationState();
builder.Services.AddAuthenticationStateDeserialization();
+// .AddApiAuthorization(); causes an error when running the app from WASM - Specified cast is invalid.
+// TODO: investigate the error and can do InteractiveAuto render mode...
builder.Services.AddApiAuthorization();
+//builder.Services.AddSingleton();
// Register HttpClient with authorization
builder.Services.AddHttpClient("OpenWish.API", client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
diff --git a/src/OpenWish.Web.Client/Services/WishlistHttpClientService.cs b/src/OpenWish.Web.Client/Services/WishlistHttpClientService.cs
index 8b6ac0c..5c0b974 100644
--- a/src/OpenWish.Web.Client/Services/WishlistHttpClientService.cs
+++ b/src/OpenWish.Web.Client/Services/WishlistHttpClientService.cs
@@ -6,67 +6,65 @@ namespace OpenWish.Web.Client.Services;
public class WishlistHttpClientService(HttpClient httpClient) : IWishlistService
{
- private readonly HttpClient _httpClient = httpClient;
-
public async Task CreateWishlistAsync(WishlistModel wishlist, string ownerId)
{
- var response = await _httpClient.PostAsJsonAsync("api/wishlists", wishlist);
+ var response = await httpClient.PostAsJsonAsync("api/wishlists", wishlist);
response.EnsureSuccessStatusCode();
return await response.Content.ReadFromJsonAsync();
}
public async Task GetWishlistAsync(int id)
{
- return await _httpClient.GetFromJsonAsync($"api/wishlists/{id}");
+ return await httpClient.GetFromJsonAsync($"api/wishlists/{id}");
}
public async Task> GetUserWishlistsAsync(string userId)
{
// Assuming userId is not required since the server knows the authenticated user
- return await _httpClient.GetFromJsonAsync>("api/wishlists");
+ return await httpClient.GetFromJsonAsync>("api/wishlists");
}
public async Task UpdateWishlistAsync(int id, WishlistModel wishlist)
{
- var response = await _httpClient.PutAsJsonAsync($"api/wishlists/{id}", wishlist);
+ var response = await httpClient.PutAsJsonAsync($"api/wishlists/{id}", wishlist);
response.EnsureSuccessStatusCode();
return await response.Content.ReadFromJsonAsync();
}
public async Task DeleteWishlistAsync(int id)
{
- var response = await _httpClient.DeleteAsync($"api/wishlists/{id}");
+ var response = await httpClient.DeleteAsync($"api/wishlists/{id}");
response.EnsureSuccessStatusCode();
}
// Wishlist Items
public async Task AddItemToWishlistAsync(int wishlistId, WishlistItemModel item)
{
- var response = await _httpClient.PostAsJsonAsync($"api/wishlists/{wishlistId}/items", item);
+ var response = await httpClient.PostAsJsonAsync($"api/wishlists/{wishlistId}/items", item);
response.EnsureSuccessStatusCode();
return await response.Content.ReadFromJsonAsync();
}
public async Task GetWishlistItemAsync(int wishlistId, int itemId)
{
- return await _httpClient.GetFromJsonAsync($"api/wishlists/{wishlistId}/items/{itemId}");
+ return await httpClient.GetFromJsonAsync($"api/wishlists/{wishlistId}/items/{itemId}");
}
public async Task> GetWishlistItemsAsync(int wishlistId)
{
- return await _httpClient.GetFromJsonAsync>($"api/wishlists/{wishlistId}/items");
+ return await httpClient.GetFromJsonAsync>($"api/wishlists/{wishlistId}/items");
}
public async Task UpdateWishlistItemAsync(int wishlistId, int itemId, WishlistItemModel item)
{
- var response = await _httpClient.PutAsJsonAsync($"api/wishlists/{wishlistId}/items/{itemId}", item);
+ var response = await httpClient.PutAsJsonAsync($"api/wishlists/{wishlistId}/items/{itemId}", item);
response.EnsureSuccessStatusCode();
return await response.Content.ReadFromJsonAsync();
}
public async Task RemoveItemFromWishlistAsync(int wishlistId, int itemId)
{
- var response = await _httpClient.DeleteAsync($"api/wishlists/{wishlistId}/items/{itemId}");
+ var response = await httpClient.DeleteAsync($"api/wishlists/{wishlistId}/items/{itemId}");
if (response.IsSuccessStatusCode)
{
return true;
diff --git a/src/OpenWish.Web.Client/_Imports.razor b/src/OpenWish.Web.Client/_Imports.razor
index 72b4af5..ad3d97d 100644
--- a/src/OpenWish.Web.Client/_Imports.razor
+++ b/src/OpenWish.Web.Client/_Imports.razor
@@ -5,6 +5,7 @@
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
+@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
diff --git a/src/OpenWish.Web/Components/Routes.razor b/src/OpenWish.Web/Components/Routes.razor
index e9ece41..c1f66c1 100644
--- a/src/OpenWish.Web/Components/Routes.razor
+++ b/src/OpenWish.Web/Components/Routes.razor
@@ -1,10 +1,12 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/OpenWish.Web/Components/_Imports.razor b/src/OpenWish.Web/Components/_Imports.razor
index 5a44d34..6d083da 100644
--- a/src/OpenWish.Web/Components/_Imports.razor
+++ b/src/OpenWish.Web/Components/_Imports.razor
@@ -7,6 +7,7 @@
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
+@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop