import { Component, inject } from "@angular/core"; import { takeUntilDestroyed } from "@angular/core/rxjs-interop"; import { Route, Router, RouterModule } from "@angular/router"; import { CfDestroyRef, CfDialogService, CfPermissionsService, CfTemplate, FullPageComponent, MenuItem } from "codefoxui"; import { LocalApiService } from "src/app/services/local.api.service"; import { UserService } from "src/app/services/user.service"; import { MENU_ITEMS } from "src/app/const"; @Component({ standalone: true, selector: 'cf-frame', templateUrl: './frame.component.html', imports: [ RouterModule, FullPageComponent, CfTemplate ] }) export class FrameComponent extends CfDestroyRef { dialogService: CfDialogService = inject(CfDialogService); las: LocalApiService = inject(LocalApiService); router: Router = inject(Router); userService: UserService = inject(UserService); permissionsService: CfPermissionsService = inject(CfPermissionsService); menuItems: MenuItem[] = MENU_ITEMS; logout(): void { this.dialogService.confirmAccept({ acceptText: 'Kijelentkezés', declineText: 'Mégsem', text: 'Biztosan kijelentkezel?', title: 'Kijelentkezés' }).then(() => { this.las.logout().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => { this.userService.userData = null; this.permissionsService.permissions = []; this.router.navigate(['/login']); }); }); } } export const FRAME_ROUTE: Route = { path: '', component: FrameComponent, canActivate: [() => inject(UserService).userData !== null ? true : inject(Router).createUrlTree(['/login'])] }