fix: only render currentlang of no other urls are available

This commit is contained in:
Christel Westerberg
2024-06-03 10:29:54 +02:00
parent 095edcce8c
commit c5b2855876
9 changed files with 57 additions and 34 deletions

View File

@@ -11,7 +11,7 @@ import type { LanguageSwitcherProps } from "@/types/components/current/languageS
export default function Desktop({
currentLanguage,
urls,
urlObject,
}: LanguageSwitcherProps) {
const [isOpen, setIsOpen] = useState(false)
const divRef = useRef<HTMLDivElement>(null)
@@ -40,11 +40,26 @@ export default function Desktop({
}
}, [close])
const urls = Object.keys(urlObject)
if (urls.length <= 1 && urls[0] === currentLanguage) {
return (
<div className={styles.container} ref={divRef}>
<section className={styles.languageSwitcher}>
<svg focusable="false" className={styles.icon} viewBox="0 0 32 32">
<use xlinkHref="/_static/img/icons/sprites.svg#icon-globe"></use>
</svg>
{languages[currentLanguage]}
</section>
</div>
)
}
return (
<div className={styles.container} ref={divRef}>
<button
aria-pressed="false"
className={styles.toggle}
className={styles.languageSwitcher}
onClick={toggleOpen}
>
<svg focusable="false" className={styles.icon} viewBox="0 0 32 32">
@@ -55,15 +70,15 @@ export default function Desktop({
<span className={styles.caret}></span>
</button>
<ul className={`${styles.dropdown} ${isOpen ? styles.isOpen : ""}`}>
{Object.keys(urls).map((key) => {
const url = urls[key as Lang]?.url
{urls.map((key) => {
const url = urlObject[key as Lang]?.url
if (url) {
return (
<li
key={key}
className={`${styles.li} ${currentLanguage === key ? styles.active : ""}`}
>
{urls[key as Lang]?.isExternal ? (
{urlObject[key as Lang]?.isExternal ? (
<Link className={styles.link} href={url}>
{languages[key as Lang]}
</Link>