import { inject } from '@angular/core'
import { ResolveFn } from '@angular/router'
import { UserResponse } from '@api-client/angular'
import { Translation, TranslocoService } from '@jsverse/transloco'
import { AuthService } from '../../auth'
import { NavigationService, Navigation } from '../../navigation'

export const UserResolver: ResolveFn<UserResponse> = () => inject(AuthService).loadUser()
export const NavigationResolver: ResolveFn<Navigation> = () => inject(NavigationService).mapNavigation()

export const TranslationResolver: ResolveFn<Translation> = () => {
	const authService = inject(AuthService)
	const translocoService = inject(TranslocoService)

	if (authService.userData?.preferedLanguage) {
		translocoService.setActiveLang(authService.userData.preferedLanguage)
	}
	const activeLang = translocoService.getActiveLang()
	return translocoService.load(activeLang)
}
