import React, { useEffect, useState } from 'react'; import { Link } from '@inertiajs/react'; import styles from './Header.module.css'; interface HeaderData { status: string; data: { photo: string | null; photo_mobile: string | null; photo_menu: string | null; title: string | null; }; } interface NavigationLink { id: number; sort_order: number; name: string; link: string; external: number; created_at: string; updated_at: string; } export default function Header({isSmall=false}) { const [innerWidth, setInnerWidth] = useState(0); const [links, setLinks] = React.useState([]); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { Promise.all([ fetch('/api/homepage').then(res => res.json()), fetch('/api/navigation').then(res => res.json()) ]) .then(([headerResponse, navigationResponse]) => { setData(headerResponse.data); setLinks(navigationResponse.data); setLoading(false); }) .catch(error => { console.error('Error fetching data:', error); setLoading(false); }); setInnerWidth(prevState => prevState = window.innerWidth); function handleResize() { setInnerWidth(prevState => prevState = window.innerWidth); } window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); } }, []); if (loading) { return ( <> ); } return (
{isSmall ? ( <> {data && data.photo && data.photo_menu ? (
Logo pizzeri GhostPizza
) : null} ) : ( (data && data.photo && data.photo_mobile) ? (
{innerWidth > 1450 ? (
{data.title
) : (
{data.title
)}
) : null )}
); }