diff --git a/src/components/LocaleSelector/LocaleSelector.client.ts b/src/components/LocaleSelector/LocaleSelector.client.ts index 473966c..c8ceba3 100644 --- a/src/components/LocaleSelector/LocaleSelector.client.ts +++ b/src/components/LocaleSelector/LocaleSelector.client.ts @@ -1,19 +1,16 @@ import { cookieName } from '../../lib/i18n'; class LocaleSelector extends HTMLElement { - constructor() { - super(); + connectedCallback() { this.addEventListener('click', (event: MouseEvent) => { - const target = event.target as HTMLAnchorElement; - if (!target || target.tagName !== 'A') { - return; - } - if (!target.hreflang) { + const target = event.target as HTMLElement; + const anchor = target?.closest('a'); + if (!anchor?.hreflang) { console.warn('LocaleSelector: missing required hreflang attribute', { target }); return; } // set the hreflang cookie to the selected locale: - document.cookie = `${cookieName}=${target.hreflang}; path=/`; + document.cookie = `${cookieName}=${anchor.hreflang}; path=/`; }); } }