mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 18:52:56 +00:00
hot fix #1
This commit is contained in:
@@ -6,11 +6,13 @@ import { useClubTheme } from '../../contexts/ClubThemeContext';
|
||||
import { getNavigationItems, NavigationItem, seedDefaultNavigation } from '../../services/navigation';
|
||||
import { getCategories, Category } from '../../services/public';
|
||||
import { assetUrl } from '../../utils/url';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
// Minimal NavLink type used to render items
|
||||
type NavLink = { label: string; to?: string; items?: { label: string; to: string }[]; external?: boolean };
|
||||
|
||||
const SpartaNavbar: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
const { data: settings } = usePublicSettings();
|
||||
const theme = useClubTheme();
|
||||
const location = useLocation();
|
||||
@@ -78,13 +80,38 @@ const SpartaNavbar: React.FC = () => {
|
||||
};
|
||||
|
||||
const convertToNavLink = (item: NavigationItem): NavLink => {
|
||||
// Map known Czech labels to translation keys
|
||||
const getTranslatedLabel = (label: string) => {
|
||||
const labelMap: Record<string, string> = {
|
||||
'Domů': 'nav.home',
|
||||
'Aktuality': 'nav.news',
|
||||
'Zápasy': 'nav.matches',
|
||||
'Hráči': 'nav.players',
|
||||
'Fotogalerie': 'nav.gallery',
|
||||
'Videa': 'nav.videos',
|
||||
'Kontakt': 'nav.contact',
|
||||
'O klubu': 'nav.about',
|
||||
'Aktivity': 'nav.activities',
|
||||
'Sponzoři': 'nav.sponsors',
|
||||
'Články': 'nav.news',
|
||||
'Blog': 'nav.news',
|
||||
'Kalendář': 'nav.calendar',
|
||||
'Tabulky': 'nav.table'
|
||||
};
|
||||
const translationKey = labelMap[label];
|
||||
return translationKey ? t(translationKey) : label;
|
||||
};
|
||||
|
||||
const link: NavLink = {
|
||||
label: item.label,
|
||||
label: getTranslatedLabel(item.label),
|
||||
to: item.url || '#',
|
||||
external: item.type === 'external',
|
||||
};
|
||||
if (item.type === 'dropdown' && item.children && item.children.length > 0) {
|
||||
link.items = item.children.map(child => ({ label: child.label, to: child.url || '#' }));
|
||||
link.items = item.children.map(child => ({
|
||||
label: getTranslatedLabel(child.label),
|
||||
to: child.url || '#'
|
||||
}));
|
||||
}
|
||||
return link;
|
||||
};
|
||||
@@ -114,7 +141,7 @@ const SpartaNavbar: React.FC = () => {
|
||||
{ label: 'Hráči', to: '/hraci' },
|
||||
categoryItems.length > 0 ? { label: 'Články', to: '/blog', items: categoryItems } : { label: 'Články', to: '/blog' },
|
||||
{ label: 'Videa', to: '/videa' },
|
||||
{ label: settings?.gallery_label || 'Fotogalerie', to: '/galerie' },
|
||||
{ label: settings?.gallery_label || t('nav.gallery'), to: '/galerie' },
|
||||
...(settings?.shop_url ? [{ label: 'Fanshop', to: settings.shop_url, external: true } as NavLink] : []),
|
||||
{ label: 'Sponzoři', to: '/sponzori' },
|
||||
{ label: 'Kontakt', to: '/kontakt' },
|
||||
|
||||
Reference in New Issue
Block a user