@codehance/rapid-stack
Version:
A modern full-stack development toolkit for rapid application development
76 lines (68 loc) • 1.77 kB
text/typescript
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { IonicModule, PopoverController } from '@ionic/angular';
import { addIcons } from 'ionicons';
import { logOutOutline, settingsOutline, personOutline, appsOutline } from 'ionicons/icons';
import { AuthService } from 'src/app/services/auth/auth.service';
({
selector: 'app-profile-popover',
templateUrl: './profile-popover.component.html',
styleUrls: ['./profile-popover.component.scss'],
standalone: true,
imports: [IonicModule]
})
export class ProfilePopoverComponent implements OnInit {
menuItems = [
{
text: 'Profile',
icon: 'person-outline',
action: () => this.goToProfile()
},
{
text: 'Settings',
icon: 'settings-outline',
action: () => this.goToSettings()
},
{
text: 'Portals',
icon: 'apps-outline',
action: () => this.goToPortals()
},
{
text: 'Logout',
icon: 'log-out-outline',
action: () => this.logout()
},
];
constructor(
private router: Router,
private authService: AuthService,
private popoverController: PopoverController
) {
addIcons({
logOutOutline,
settingsOutline,
personOutline,
appsOutline
});
}
ngOnInit() {}
goToProfile() {
this.popoverController.dismiss();
this.router.navigate(['/profile']);
}
goToSettings() {
this.popoverController.dismiss();
this.router.navigate(['/settings']);
}
logout() {
this.authService.logout().subscribe(() => {
this.popoverController.dismiss();
this.router.navigate(['/auth/login']);
});
}
goToPortals() {
this.popoverController.dismiss();
this.router.navigate(['/']);
}
}