Hello again,
You can check this page for seeing the release notes https://abp.io/docs/latest/studio/release-notes. The related fixes I have mentioned are not released yet.
Thank you for your cooperation.
Hello,
Thank you for providing the reproduction steps. However, I cannot produce the same problem on my end. That would be the best if you could provide error logs that are located in your system under such directory .abp/suite/logs
Thank you for your cooperation.
Hello,
I cannot produce the same problem on my end with this ABP suite/package version 10.0.2. That would be the best if you could provide error logs that are located in your system, under such directory .abp/suite/logs
Thank you for your cooperation.
This title strategy is configured inside the core package, specifically here
So, the default is MyProjectName https://github.com/abpframework/abp/blob/d619ff84e3432912a6008300abcd6addb5681489/npm/ng-packs/packages/core/src/lib/services/title-strategy.service.ts#L32
For this reason, you will need to put this provider object after the core module call in the providers array just to override the default one.
Hello,
Thank you for explaining the problem. You may need to override the title strategy depending on you requirement. Here is an example:
import { Injectable, inject, effect } from '@angular/core';
import { toSignal } from '@angular/core/rxjs-interop';
import { RouterStateSnapshot, TitleStrategy } from '@angular/router';
import { Title } from '@angular/platform-browser';
import { LocalizationService } from '@abp/ng.core';
@Injectable({
providedIn: 'root',
})
export class CustomTitleStrategy extends TitleStrategy {
protected readonly title = inject(Title);
protected readonly localizationService = inject(LocalizationService);
protected routerState: RouterStateSnapshot;
langugageChange = toSignal(this.localizationService.languageChange$);
constructor() {
super();
effect(() => {
if (this.langugageChange()) {
this.updateTitle(this.routerState);
}
});
}
override updateTitle(routerState: RouterStateSnapshot) {
this.routerState = routerState;
const title = this.buildTitle(routerState);
const projectName = 'My Project Name';
if (!title) {
return this.title.setTitle(projectName);
}
const localizedText =
this.localizationService.instant({ key: title, defaultValue: title }) + ` | ${projectName}`;
this.title.setTitle(localizedText);
}
}
Then, you need to add this to the providers of your application
providers: [
//...
{
provide: TitleStrategy,
useExisting: CustomTitleStrategy,
}
]
You can let us know if you need further assistance. Thank you for your cooperation.
Hello,
You can achieve this by manipulating the environment response in your app.config.ts. Here is an example:
import {
provideAbpThemeShared,
withValidationBluePrint,
withHttpErrorConfig,
} from '@abp/ng.theme.shared';
export const appConfig: ApplicationConfig = {
providers: [
provideAppInitializer(() => {
const environmentService = inject(EnvironmentService);
return new Promise<void>(resolve => {
const checkEnvironment = () => {
const env = environmentService.getEnvironment();
if (env?.application?.name) {
document.title = env.application.name;
console.log('✅ Application name updated from ConfigMap:', env.application.name);
console.log('✅ Logo URL:', env.application.logoUrl);
resolve();
} else {
setTimeout(checkEnvironment, 50);
}
};
setTimeout(checkEnvironment, 100);
setTimeout(() => {
console.warn('⚠️ Remote environment not loaded within timeout');
resolve();
}, 5000);
});
}),
provideLogo(),
{
provide: LOGO_URL_TOKEN,
useFactory: () => {
const environmentService = inject(EnvironmentService);
const env = environmentService.getEnvironment();
return env?.application?.logoUrl || '';
},
},
{
provide: LOGO_APP_NAME_TOKEN,
useFactory: () => {
const environmentService = inject(EnvironmentService);
const env = environmentService.getEnvironment();
return env?.application?.name || 'ProjectName';
},
},
],
};
Thank you for your cooperation.
I will be processing a refund for this ticket and keep it open for the time being.
Hello,
Thank you for explaining the problem with details. However, I remember that we have fixed this problem in a previous version and could not produce it on my end. Is it possible for you to share a minimal reproducible example via email so that I can assist you further. Here is my address: sumeyye.kurtulus@volosoft.com
Thank you for your cooperation.
This depends on how you want the name to be used. For example, if you are working on the logo and the name is already derived from the environment files, there is no need to define a global value in the YAML configuration.
Thank you for your response and for sharing your concerns so candidly.
The latest updates are planned to be announced with the next release, as that will be the earliest opportunity to do so. As you correctly inferred, the React Native / Expo template is provided primarily to demonstrate how ABP packages can be implemented in a mobile environment. In that sense, it differs from our other templates, as it is designed to be more flexible and open to customization rather than a fully opinionated, turnkey solution.
When it comes to building production-ready applications, the suitability of the template can vary depending on specific project requirements and the level of customization involved. That said, we fully understand the expectation that a paid, commercial offering should work reliably out of the box, and we acknowledge the frustration caused when it does not meet that expectation. Also, we are always here to support with the details you need.
We will share more concrete details regarding the roadmap and ABP Studio–related updates as soon as they are finalized in the upcoming release.
Thank you again for your cooperation.