Files
dspace-angular/src/app/shared/menu/menu-item/link-menu-item.component.ts
2023-12-19 01:10:07 +01:00

47 lines
1.2 KiB
TypeScript

import { Component, Inject, OnInit } from '@angular/core';
import { LinkMenuItemModel } from './models/link.model';
import { rendersMenuItemForType } from '../menu-item.decorator';
import { isNotEmpty } from '../../empty.util';
import { MenuItemType } from '../menu-item-type.model';
import { Router } from '@angular/router';
/**
* Component that renders a menu section of type LINK
*/
@Component({
selector: 'ds-link-menu-item',
styleUrls: ['./menu-item.component.scss'],
templateUrl: './link-menu-item.component.html',
})
@rendersMenuItemForType(MenuItemType.LINK)
export class LinkMenuItemComponent implements OnInit {
item: LinkMenuItemModel;
hasLink: boolean;
constructor(
@Inject('itemModelProvider') item: LinkMenuItemModel,
private router: Router,
) {
this.item = item;
}
ngOnInit(): void {
this.hasLink = isNotEmpty(this.item.link);
}
getRouterLink() {
if (this.hasLink) {
return this.item.link;
}
return undefined;
}
navigate(event: any) {
event.preventDefault();
if (!this.item.disabled && this.getRouterLink()) {
this.router.navigate([this.getRouterLink()]);
}
event.stopPropagation();
}
}