Thanks, I can change the footer as you guided.
I added your code and got other error, so I think I will wait for your patch of this version. In additional, I have another question, how can I change the footer info before login, I can custom MainFooterComponent.razor in Blazor.Client to change but this information only update after login and loading Blazor Web Assembly. Thanks
Thanks, I will try. Your code will be placed in Blazor.Client Module, right?
Hi,
I have done as you recommended but another error happened, It is quite similar to issue of getting access token I asked you yesterday on another topic:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Cannot provide a value for property 'AccessTokenProvider' on type 'Volo.Chat.Blazor.WebAssembly.Components.BlazorMessagesToolbarItem'. There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider'.
System.InvalidOperationException: Cannot provide a value for property 'AccessTokenProvider' on type 'Volo.Chat.Blazor.WebAssembly.Components.BlazorMessagesToolbarItem'. There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider'.
at Microsoft.AspNetCore.Components.ComponentFactory.<>c__DisplayClass9_0.<CreatePropertyInjector>g__Initialize|1(IServiceProvider serviceProvider, IComponent component)
at Microsoft.AspNetCore.Components.ComponentFactory.PerformPropertyInjection(IServiceProvider serviceProvider, IComponent instance)
at Microsoft.AspNetCore.Components.ComponentFactory.InstantiateComponent(IServiceProvider serviceProvider, Type componentType, IComponentRenderMode callerSpecifiedRenderMode, Nullable1 parentComponentId) at Microsoft.AspNetCore.Components.RenderTree.Renderer.InstantiateChildComponentOnFrame(RenderTreeFrame[] frames, Int32 frameIndex, Int32 parentComponentId) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InitializeNewComponentFrame(DiffContext& diffContext, Int32 frameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InitializeNewSubtree(DiffContext& diffContext, Int32 frameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.InsertNewFrame(DiffContext& diffContext, Int32 newFrameIndex) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.AppendDiffEntriesForRange(DiffContext& diffContext, Int32 oldStartIndex, Int32 oldEndIndexExcl, Int32 newStartIndex, Int32 newEndIndexExcl) at Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiffBuilder.ComputeDiff(Renderer renderer, RenderBatchBuilder batchBuilder, Int32 componentId, ArrayRange
1 oldTree, ArrayRange`1 newTree)
at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderInExistingBatch(RenderQueueEntry renderQueueEntry)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessRenderQueue()
Hi ABP Team,
I have a problem with Chat module after upgraded to v8.2 and use new application template Blazor Web App.
My previous app I used Blazor Wasm template as the main solution in this main solution I installed Chat module. I have developed another module called Common, in this module I have added a Notification icon to toolbar follow the guideline from this: https://docs.abp.io/en/abp/latest/UI/Blazor/Toolbars, and I use SignalR to realtime update notification to show on this icon.. Then I integrated this module to Main Application, everything are ok.
Now I'd like to use new application template in v8.2: Blazor Web App so I created a new Main Solution with new template then I integrated Common module as I have done before but when run the Main Solution the Chat icon on Toolbar show during page loading but was disappeared after Common module loaded completely, and on the toolbar only see the Notification icon but didn't see Chat icon. I come to Setting to check the Chat feature was also disappeared here.
During loading page at beginning still can see Chat icon:
But after completing loading (included Common module) Chat was disappeared, only see the Notification I have implemented in Common module:
Go to Setting there is no Chat feature there:
Thanks, Dharma Han Nguyen
I can use GetTokenAsync() of IAbpAccessTokenProvider in my module and now already resolved my issue. Thank you so much!
Hi, Is there any document about IAbpAccessTokenProvider, I search in ABP standard document but didn't see? Thanks
Hi ABP Team, I have a problem when upgrading to v8.2 and using new template of Blazor Web App. My current solution using version 8.1.4 as following:
Now I'd like to use the new application template Blazor Web App as the Main Application replace for the above Main Application (Blazor Web Assembly) and I don't know how to integrate these modules with the new Main Application structure as now we have 2 Blazor projects (Blazor and Blazor.Client). Is there any document or guidline for this case? I have tried to do as earlier versions but it seems having error with authentication when my component in module is using signalR and error happened with code of getting access_token In razor page I have injected: @inject IAccessTokenProvider TokenProvider and here code of SignalR:
#region SignalR
public async Task GetConnectSignalR()
{
var tokenResult = await TokenProvider.RequestAccessToken();
var apiURL = Configuration.GetValue<string>("SignalR:Url");
Console.WriteLine("Getting SignalR-Common from appsettings.json: " + apiURL);
try
{
if (tokenResult.TryGetToken(out var token))
{
_hubConnection = new HubConnectionBuilder()
.WithUrl($"{apiURL}", options =>
{
options.AccessTokenProvider = async () => await Task.FromResult(token.Value);
}).Build();
_hubConnection.On<NotificationCreateDto>("ReceiveMessage",
(message) =>
{
_messages.Add(message);
Console.WriteLine("Received message from server: " + message);
_ = GetNotificationListAsync();
});
await _hubConnection.StartAsync();
Console.WriteLine("SignalR-Common connected");
}
}
catch (Exception ex)
{
Console.WriteLine("Error starting HubConnection: " + ex.Message);
}
}
public async Task SendMessage()
{
try
{
await _hubConnection.SendAsync("SendMessage", _message);
_message = new NotificationCreateDto();
}
catch (Exception ex)
{
Console.WriteLine("Error sending message: " + ex.Message);
}
}
public void Dispose()
{
_ = _hubConnection?.DisposeAsync();
}
#endregion
Error: blazor.web.js:1 crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] Unhandled exception rendering component: Cannot provide a value for property 'TokenProvider' on type 'HQSOFT.Common.Blazor.Pages.Component.HQSOFTNotifications'. There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider'. System.InvalidOperationException: Cannot provide a value for property 'TokenProvider' on type 'HQSOFT.Common.Blazor.Pages.Component.HQSOFTNotifications'. There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider'. Thanks Dharma Han Nguyen
Hi @EngincanV, Could you please help me on this issue? Thanks