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