import {
ChangeDetectionStrategy,
Component,
input,
viewChild,
ViewEncapsulation,
} from "@angular/core";
import { SdDropdown } from "../../controls/dropdown/sd-dropdown";
import { SdDropdownPopup } from "../../controls/dropdown/sd-dropdown-popup";
import { SdList } from "../../controls/list/sd-list";
import { SdListItem } from "../../controls/list/sd-list-item";
import { SdButton } from "../../controls/button/sd-button";
@Component({
selector: "sd-topbar-user",
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
standalone: true,
imports: [
SdDropdown,
SdDropdownPopup,
SdList,
SdListItem,
SdButton,
],
template: `
@for (menu of menus(); track menu.title) {
{{ menu.title }}
}
`,
styles: [],
})
export class SdTopbarUser {
menus = input.required();
private readonly _dropdown = viewChild(SdDropdown);
onMenuClick(menu: SdTopbarUserMenu): void {
menu.onClick();
this._dropdown()?.open.set(false);
}
}
export interface SdTopbarUserMenu {
title: string;
onClick: () => void;
}