import { h } from '@stencil/core'; import { Language } from '../../../utils/common/language-types'; /** * Get text in current language from a string or bilingual object. */ function getText(text: string | { en: string; fr: string } | undefined, language: Language = 'en'): string { if (!text) return ''; if (typeof text === 'string') return text; return text[language] || text.en || ''; } /** * This function generates the menu items in a
  • , accordingly, to the given parameters. * * @param {string} href - the href of the menu item * @param {string | { en: string; fr: string }} title - the title of the menu item (can be string or bilingual object) * @param {boolean} linkIsActive - when set to true, this will add the classes necessary to style the link * @param {string | { en: string; fr: string }} [description] - optional description text that appears below the title * @param {Language} [language] - the language to use for bilingual content * @param {string} [liClass] - if there is a class that is related to the portion of the menu item, put it here * @param {function(PointerEvent): void} [onClickHandler] - for any custom onClick functionality */ export function generateMenuItem( href: string, title: string | { en: string; fr: string } | undefined, linkIsActive: boolean, description?: string | { en: string; fr: string }, language: Language = 'en', liClass?: string, onClickHandler?: (event: PointerEvent) => void, ) { const titleText = getText(title, language); const descriptionText = getText(description, language); return (
  • {titleText} {descriptionText && {descriptionText}}
  • ); }