import {type Html, html} from "../../../../common/html.ts"; import * as t from "../../../../common/translation-util.ts"; import type {NavigationItem} from "../../../../common/types.ts"; import {generateNodeFromHtml} from "../../components/base.ts"; type PreferenceNavigationProperties = { $root: Element; onItemSelected: (navigationItem: NavigationItem) => void; }; export default class PreferenceNavigation { navigationItems: Array<{navigationItem: NavigationItem; label: string}>; $el: Element; constructor(private readonly properties: PreferenceNavigationProperties) { this.navigationItems = [ {navigationItem: "General", label: t.__("General")}, {navigationItem: "Network", label: t.__("Network")}, {navigationItem: "AddServer", label: t.__("Add Organization")}, {navigationItem: "Organizations", label: t.__("Organizations")}, {navigationItem: "Shortcuts", label: t.__("Shortcuts")}, ]; this.$el = generateNodeFromHtml(this.templateHtml()); this.properties.$root.append(this.$el); this.registerListeners(); } templateHtml(): Html { const navigationItemsHtml = html``.join( this.navigationItems.map( ({navigationItem, label}) => html`
`, ), ); return html`