Activities of "improwise"

  • ABP Framework version: v8.2
  • UI Type: MAUI Blazor

When trying to build a MAUI Blazor (and probably MAUI Xamarin as well I guess) you will get build errors from OAuthSecureStorage as the AccessTokenKey property is not defined.

using Volo.Abp.Account.Pro.Public.MauiBlazor.OAuth;
using Volo.Abp.DependencyInjection;
namespace ImproWise.Koll.MauiBlazor;
[Volo.Abp.DependencyInjection.Dependency(ReplaceServices = true)]
[ExposeServices(typeof(IOAuthSecureStorage))]
public class OAuthSecureStorage : IOAuthSecureStorage, ITransientDependency
{

 public Task SetAsync(string key, string value)
 {
#if DEBUG
 Preferences.Set(key, value);
 return Task.CompletedTask;
#else
 return SecureStorage.Default.SetAsync(key, value);
#endif
 }
 public Task\<string> GetAsync(string key)
 {
#if DEBUG
 return Task.FromResult(Preferences.Get(key, string.Empty));
#else
** return SecureStorage.Default.GetAsync(AccessTokenKey);**
#endif
 }
 public Task RemoveAsync(string key)
 {
#if DEBUG
 Preferences.Remove(key);
#else
** SecureStorage.Default.Remove(AccessTokenKey);**
#endif
 return Task.CompletedTask;
 }
}\

The only thing close to the documentation we have been able to find about this is:

https://docs.abp.io/en/commercial/latest/getting-started-maui

Which points to:

https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/storage/secure-storage?view=net-maui-8.0&tabs=android

but I don't see how that could make it work without changing the provided code.

You can make it build by doing something like

string AccessTokenKey = "1234";

but that isn't really a solution to the problem.

Is this a bug or something we should handle ourselves and if so, the documentation probably needs updating.

Still waiting for a response here...

Seems like this is the answer to question 5:

SelectedMenuItems = Options.Value.MobileMenuSelector(menu.Items.AsReadOnly()).Take(2).ToList();

  • ABP Framework version: v8.2
  • UI Type: Blazor
  • Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..) / MongoDB

In a Blazor app (but guessing it might be in all kinds of projects), when a user only has read permission to an entity, the Actions button is still displayed even though the user has no permissions to do anything. When you click it, it appears as nothing happens but in fact there is a very small empty menu that shows up (as the user has no available actions). T

This is quite confusing to the user and the Actions menu should not be displayed when it is empty. Idealy the entire column should be hidden if the current user has not permissions to any actions since it should be the same for all rows as permissions are per entity type.

This can be found in the Volosoft source code but the GitHub issue is private so don't know status:

// TODO: Enable it after resolution of https://github.com/volosoft/lepton/issues/670 // HasMultipleStyles = !ThemeOptions.Value.Styles.IsNullOrEmpty() && ThemeOptions.Value.Styles.Count > 1; HasMultipleStyles = true;

Also, even if you do something like this, the Appearance menu will show up with one item just like the Language menu will do with only one language:

        options.DefaultStyle = LeptonXStyleNames.Light;
		options.Styles.Remove(LeptonXStyleNames.Dark);
		options.Styles.Remove(LeptonXStyleNames.Dim);
		options.Styles.Remove(LeptonXStyleNames.System);
  • ABP Framework version: v8.2.0
  • UI Type: MAUI BLaxor / Blazor WASM / Blazor Server

The LeptonX is good but it also feel a bit "bloated" out of the box, especially if you want to design something for a smaller screen like a MAUI Blazor app. We are now wondering how we can make it less complicated without having to start implementing our own custom version of it just for some small changes. We fully accept that if we actually want to make design changes, we might need to override the theme components, and we probably will, but ideally it should not be needed for configuration changes. If not for any other reason in order to more easily update to newer versions of ABP which might contain theme changes.

  1. How can you hide language, container width and appearance menus, both in Main Header Toolbar (General Settings) and in MobileNavBar (MobileGeneralSettings)? Looking into the files for LeptonX, there seem to be switches like" @if (HasMultipleStyles)" and "@if (HasContainerWidth)" but we have not been able where to control/change those. Unlike previous Lepton theme, even if you disable all languages but one, the language menu still seem to render in LeptonX but with only one choice available (the enabled language).

  2. How can you specify theme, container width and appearance either in code or settings (appsettings or similar) for Leptonx so you can control it but not allowing users to modify it?

  3. For the MobileNavBar, is there a way to hide the "Settings" or at least move it in under the user menu so that "slot" in the tab bar can instead be used for something more useful, like navigating to a page just like Home/Dashboard? With only fem slots available, 4 including the hamburger menu, it seems like a waste to dedicate one of them to Settings that you might change once or twice (or never)

  4. How come the MobileNavBar can't be controlled like the normal main menu? Seems like the only way is to hardcode items using options.MobileMenuSelector = items => items.Where(...) which isn't ideal for various reasons.

  5. How can you control/change the number of items for MobileMenuSelector ? 2 seems to be default but have found not documentation on how to change that.

  6. Is the a way to make the hamburger menu a bit less "in your face" and perhaps also move it to be far right instead of in center which is a very odd location?

We have tried to find documentation to answer the questions above but have not been able to do so besides "make your own version of the theme" which does not seem reasonable for changes like the ones we are looking for here.

Thanks.

Seems like abp bundle command is not working as it should in a MAUI Blazor project (created via the MAUI Blazor template in ABP Suite), at least not according to documentation.

"bundle This command generates script and style references for ABP Blazor WebAssembly and MAUI Blazor project and updates the index.html file. It helps developers to manage dependencies required by ABP modules easily. In order bundle command to work, its executing directory or passed --working-directory parameter's directory must contain a Blazor or MAUI Blazor project file(*.csproj)."


abp bundle --maui-blazor ABP CLI 8.2.0 Unsupported project type. Project type must be Microsoft.NET.Sdk.BlazorWebAssembly. Unsupported project type. Project type must be Microsoft.NET.Sdk.BlazorWebAssembly. Volo.Abp.Cli.Bundling.BundlingException: Unsupported project type. Project type must be Microsoft.NET.Sdk.BlazorWebAssembly. at Volo.Abp.Cli.Bundling.BundlingService.CheckProjectIsSupportedType(String projectFilePath, String projectType) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Bundling\BundlingService.cs:line 333 at Volo.Abp.Cli.Bundling.BundlingService.BundleAsync(String directory, Boolean forceBuild, String projectType) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Bundling\BundlingService.cs:line 50 at Volo.Abp.Cli.Commands.BundleCommand.ExecuteAsync(CommandLineArgs commandLineArgs) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Commands\BundleCommand.cs:line 47 at Volo.Abp.Cli.CliService.RunInternalAsync(CommandLineArgs commandLineArgs) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\CliService.cs:line 173 at Volo.Abp.Cli.CliService.RunAsync(String[] args) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\CliService.cs:line 80 Unhandled exception. Volo.Abp.Cli.Bundling.BundlingException: Unsupported project type. Project type must be Microsoft.NET.Sdk.BlazorWebAssembly. at Volo.Abp.Cli.Bundling.BundlingService.CheckProjectIsSupportedType(String projectFilePath, String projectType) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Bundling\BundlingService.cs:line 333 at Volo.Abp.Cli.Bundling.BundlingService.BundleAsync(String directory, Boolean forceBuild, String projectType) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Bundling\BundlingService.cs:line 50 at Volo.Abp.Cli.Commands.BundleCommand.ExecuteAsync(CommandLineArgs commandLineArgs) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Commands\BundleCommand.cs:line 47 at Volo.Abp.Cli.CliService.RunInternalAsync(CommandLineArgs commandLineArgs) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\CliService.cs:line 173 at Volo.Abp.Cli.CliService.RunAsync(String[] args) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\CliService.cs:line 80 at Volo.Abp.Cli.Program.Main(String[] args) in D:\ci\Jenkins\workspace\abp-volo-release\abp\framework\src\Volo.Abp.Cli\Volo\Abp\Cli\Program.cs:line 43 at Volo.Abp.Cli.Program.<Main>(String[] args)

Will you please refund ticket with this being a confirmed bug/problem? Thanks.

sorry, this is a private link

Seems much better than before.

Also, thanks for keeping me/us updated on the progress here

THe issue has been fixed

https://github.com/volosoft/volo/pull/17940

Is that a public repo as the link isn't working?

Showing 191 to 200 of 338 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 04, 2025, 16:11