From 0f073760ee744ca15fb41e738abb2525642b3c18 Mon Sep 17 00:00:00 2001 From: ManInDark <61268856+ManInDark@users.noreply.github.com> Date: Tue, 17 Jun 2025 22:30:18 +0200 Subject: [PATCH] fix: unify NavDisplays --- components/DesktopNavDisplay.tsx | 33 ----------------- components/MobileNavDisplay.tsx | 33 ----------------- components/NavDisplay.tsx | 61 ++++++++++++++++++++++++++++++++ components/Navigation.tsx | 33 ++--------------- 4 files changed, 63 insertions(+), 97 deletions(-) delete mode 100644 components/DesktopNavDisplay.tsx delete mode 100644 components/MobileNavDisplay.tsx create mode 100644 components/NavDisplay.tsx diff --git a/components/DesktopNavDisplay.tsx b/components/DesktopNavDisplay.tsx deleted file mode 100644 index 20e8b37..0000000 --- a/components/DesktopNavDisplay.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; -import { NavDisplayProps } from './Navigation'; - -export default function DesktopNavDisplay({ navItems }: NavDisplayProps) { - const pathname = usePathname(); - - return ( -
-
-
-
- -
-
-
-
- ); -} diff --git a/components/MobileNavDisplay.tsx b/components/MobileNavDisplay.tsx deleted file mode 100644 index ae0f3d0..0000000 --- a/components/MobileNavDisplay.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useHelpers } from '@/lib/client-helpers'; -import Link from 'next/link'; -import { usePathname } from 'next/navigation'; -import { NavDisplayProps } from './Navigation'; - -export default function MobileNavDisplay({ navItems }: NavDisplayProps) { - const pathname = usePathname(); - const { isIOS } = useHelpers() - - return ( - <> -
- - - ); -} diff --git a/components/NavDisplay.tsx b/components/NavDisplay.tsx new file mode 100644 index 0000000..45b1945 --- /dev/null +++ b/components/NavDisplay.tsx @@ -0,0 +1,61 @@ +import { useHelpers } from '@/lib/client-helpers'; +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; +import { NavItemType } from './Navigation'; + +export default function NavDisplay({ navItems, isMobile }: { navItems: NavItemType[], isMobile: boolean }) { + const pathname = usePathname(); + const { isIOS } = useHelpers() + + if (isMobile) { + return ( + <> +
+ + + ); + } else { + return ( +
+
+
+
+ +
+
+
+
+ ); + } +} diff --git a/components/Navigation.tsx b/components/Navigation.tsx index 622c244..6a42c62 100644 --- a/components/Navigation.tsx +++ b/components/Navigation.tsx @@ -4,8 +4,7 @@ import { HabitIcon, TaskIcon } from '@/lib/constants' import { Calendar, Coins, Gift, Home } from 'lucide-react' import { useTranslations } from 'next-intl' import { ElementType, useEffect, useState } from 'react' -import DesktopNavDisplay from './DesktopNavDisplay' -import MobileNavDisplay from './MobileNavDisplay' +import NavDisplay from './NavDisplay' type ViewPort = 'main' | 'mobile' @@ -19,13 +18,8 @@ interface NavigationProps { position: ViewPort } -export interface NavDisplayProps { - navItems: NavItemType[]; -} - export default function Navigation({ position: viewPort }: NavigationProps) { const t = useTranslations('Navigation') - const [isMobileView, setIsMobileView] = useState(false) const currentNavItems: NavItemType[] = [ { icon: Home, label: t('dashboard'), href: '/' }, @@ -36,28 +30,5 @@ export default function Navigation({ position: viewPort }: NavigationProps) { { icon: Coins, label: t('coins'), href: '/coins' }, ] - useEffect(() => { - const handleResize = () => { - setIsMobileView(window.innerWidth < 1024) - } - - // Set initial value - handleResize() - - // Add event listener - window.addEventListener('resize', handleResize) - - // Cleanup - return () => window.removeEventListener('resize', handleResize) - }, []) - - if (viewPort === 'mobile' && isMobileView) { - return - } - - if (viewPort === 'main' && !isMobileView) { - return - } - - return null // Explicitly return null if no view matches + return }