Prefetch User Language
import { provideAppInitializer } from '@angular/core';
import { UserService } from './user.service';
import { TranslocoService } from '@jsverse/transloco';
import { lastValueFrom } from 'rxjs';
export function preloadUser() {
const userService = inject(UserService);
const transloco = inject(TranslocoService);
return async () => {
const config = await userService.getUser();
// Set the language
transloco.setActiveLang(config.lang);
// Load the translation file - load returns an observable
await lastValueFrom(transloco.load(config.lang));
};
}
export function providePreloadUserLang() {
return provideAppInitializer(preloadUser);
}import { APP_INITIALIZER } from '@angular/core';
import { UserService } from './user.service';
import { TranslocoService } from '@jsverse/transloco';
import { lastValueFrom } from 'rxjs';
export function preloadUser(userService: UserService, transloco: TranslocoService) {
return async function() {
const config = await userService.getUser();
// Set the language
transloco.setActiveLang(config.lang);
// Load the translation file - load returns an observable
await lastValueFrom(transloco.load(config.lang));
};
};
}
export function providePreloadUserLang() {
return {
provide: APP_INITIALIZER,
multi: true,
useFactory: preloadUser,
deps: [UserService, TranslocoService]
};
}Explanation:
Last updated
Was this helpful?

