Activities of "improwise"

I need help with a problem I'm having with the Blazor Web App template version 8.2.0:

Never seen that myself, you did not simply type the wrong path? I usually copy and paste it from file explorer.

Still waiting for a reply here.

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).

You can create the following component in your application:

using Microsoft.AspNetCore.Components.Rendering; 
using Volo.Abp.AspNetCore.Components.Web.LeptonXTheme.Components.ApplicationLayout.Common; 
using Volo.Abp.DependencyInjection; 
 
namespace LeptonXDemoApp.Blazor.Components; 
 
[Dependency(ReplaceServices = true)] 
[ExposeServices(typeof(GeneralSettings), typeof(EmptyGeneralSettings))] 
public class EmptyGeneralSettings : GeneralSettings 
{ 
 
    protected override void BuildRenderTree(RenderTreeBuilder __builder) 
    { 
        __builder.OpenElement(0, "div"); 
        __builder.AddAttribute(1, "class", "empty-general-settings"); 
        __builder.CloseElement(); 
    } 
} 

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?

You can create the following script in wwwroot/globa.js

$(function () { 
 
    const currentInitLeptonX = window.initLeptonX; 
    window.initLeptonX = function (layout, defaultStyle = "dim") { 
 
        currentInitLeptonX(layout, defaultStyle); 
 
        leptonx.globalConfig.defaultSettings = 
        { 
            appearance: "dark", 
            containerWidth: 'full', 
        }; 
 
        leptonx.init.run(); 
    } 
}); 

And add it to the bundle configuration: (Configure both for Blazor Server)

 
// For Blazor Server 
options.ScriptBundles.Configure( 
    LeptonXThemeBundles.Scripts.Global, 
    bundle => 
    { 
        bundle.AddFiles("/global.js"); 
    } 
); 
 
// For Blazor WASM / MauiBlazor / Blazor Server 
options.ScriptBundles.Configure( 
    BlazorLeptonXThemeBundles.Scripts.Global, 
    bundle => 
    { 
        bundle.AddFiles("/global.js"); 
    }); 

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)

It's a design decision, there is no configuration for it right now, you can customize it by overriding the MobileNavBar component in your project.

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.

It uses regular menu contributor to list menu items. Bottom bar is designed for mobile requirements and it has limited space. So only 2 items can be placed there, you can pick which ones will be there. But still all the menu items will be included in hamburger menu.

Thank you. We will give this a try and report back on how it goes and if there are any additional questions.

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?

For now, you need to override the styles to do something like this, but we are working on this and will change the design this way in the next versions.

Thanks. I believe that is a very good idea as the current "theme" feels much more suitable for something like a game or a fashion app than something you would use in a more typical LOB app or similar. Since there are only 5 available slots on the navbar, using three of them for navigation seems like a waste. Like how often do you really need to change appearance and language that you need to have it available in one of the prime locations on the navbar when it could just as well be under the "my profile" section. Also please consider if the hamburger menu really need to be there and even if it is, it should probably be further to the right and bit toned down. Of course, the best would be if you could perhaps switch between a couple of different designs / themes, like the current one and the one I describe above. That should go a long way.

A somewhat related issue to this so I put it in here instead of creating a new issue about it.

The code generated by ABP Suite (and probably the normal MAUI projects in all version) does not seem to be compatible with newer versions of Android. When you try to build it in Release mode with SDK 33 or higher (which is a requirement these days), you will get this error message:

android:exported needs to be explicitly specified for element <activity#XXXXWebAuthenticatorCallbackActivity>. Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined.

After some investigation, it turns out to be the generated WebAuthenticatorCallbackActivity that is the reason for this, and the solution is to put android:exported in the Activity decoration

[Activity(NoHistory = true, LaunchMode = LaunchMode.SingleTop, Exported = true)]
[IntentFilter(new[] { Intent.ActionView },
    Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable },
    DataScheme = CALLBACK_SCHEME)]
public class XXXXWebAuthenticatorCallbackActivity : WebAuthenticatorCallbackActivity
{
    public const string CALLBACK_SCHEME = "XXXX";
}

I thought this sounded familiar, apparently we had a similar discussion 2 years ago

https://support.abp.io/QA/Questions/3714/NET-MAUI-mobile-application-uses-Preferences-instead-of-SecureStorage-for-JWT-Tokens

But I guess the question still stands about how to solve this and make the ABP generated solution build.

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();

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);

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)

Showing 241 to 250 of 379 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.2.0-preview. Updated on February 17, 2026, 09:10
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.