mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
47 lines
1.2 KiB
TypeScript
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();
|
|
}
|
|
|
|
}
|