import React, { useEffect, useState } from 'react'
import styles from './layout.module.scss'
import Menu from '../Menu/Menu'
import Navbar from '../Navbar/Navbar'

interface LayoutProps {
  children: React.ReactNode
}

const Layout: React.FC<LayoutProps> = ({ children }: LayoutProps) => {
  const [isMobile, setisMobile] = useState<boolean>(false)
  useEffect(() => {
    function handleResize() {
      const test: boolean =
        /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
          navigator.userAgent
        ) || window.innerWidth < 768
          ? true
          : false
      setisMobile(test)
    }
    handleResize()

    window.addEventListener('resize', handleResize)
    return () => {
      window.removeEventListener('resize', handleResize)
    }
  }, [])
  return (
    <div className={styles.root}>
      {!isMobile ? (
        <div className={styles.menuWrapper}>
          <Menu />
        </div>
      ) : (
        <div className={styles.mobileNavWrapper}>
          <Navbar />
        </div>
      )}
      <div className={styles.wrapper}>
        <main>{children}</main>
      </div>
    </div>
  )
}

export default Layout