import { Box, Typography } from '@mui/material';
import { useLocation } from 'react-router-dom';
import { useMemo, useEffect, useState } from 'react';

interface HeaderConfig {
  title: string;
  subtitle: string;
  hidden?: boolean;
}

export default function PageHeader() {
  const location = useLocation();
  const [isAuthed, setIsAuthed] = useState(false);

  const isLaunchPage = location.pathname.startsWith('/launch');

  useEffect(() => {
    const saved = localStorage.getItem('launcher_config');
    try {
      const cfg = saved ? JSON.parse(saved) : null;
      setIsAuthed(Boolean(cfg?.accessToken)); // или cfg?.uuid/username
    } catch {
      setIsAuthed(false);
    }
  }, [location.pathname]);

  const headerConfig: HeaderConfig | null = useMemo(() => {
    const path = location.pathname;

    // Страницы без заголовка
    if (
      path === '/login' ||
      path === '/registration' ||
      path === '/marketplace' ||
      path === '/profile' ||
      path.startsWith('/launch')
    ) {
      return { title: '', subtitle: '', hidden: true };
    }

    if (path === '/settings') {
      return {
        title: 'Настройки',
        subtitle: 'Персонализация интерфейса и поведения лаунчера',
      }
    }

    if (path === '/news') {
      return {
        title: 'Новости',
        subtitle: 'Последние обновления лаунчера, сервера и ивентов',
      };
    }

    if (path === '/') {
      return {
        title: 'Выбор версии клиента',
        subtitle: 'Выберите установленную версию или добавьте новую сборку',
      };
    }

    if (path.startsWith('/daily')) {
      return {
        title: 'Ежедневные награды',
        subtitle: 'Ежедневный вход на сервер приносит бонусы и полезные награды!',
      };
    }

    if (path.startsWith('/dailyquests')) {
      return {
        title: 'Ежедневные задания',
        subtitle:
          'Выполняйте ежедневные задания разной сложности и получайте награды!',
      };
    }

    if (path.startsWith('/shop')) {
      return {
        title: 'Внутриигровой магазин',
        subtitle: 'Тратьте свою уникальную виртуальную валюту — Попы!',
      };
    }

    if (path.startsWith('/marketplace')) {
      return {
        title: 'Маркетплейс',
        subtitle: 'Покупайте или продавайте — торговая площадка между игроками',
      };
    }

    // Дефолт
    return { title: 'test', subtitle: 'test' };
  }, [location.pathname]);

  // ✅ один общий guard — тут и “hidden”, и “не авторизован”, и launch
  if (!headerConfig || headerConfig.hidden || !isAuthed || isLaunchPage) {
    return null;
  }

  return (
    <Box
      sx={{
        width: '100%',
        maxWidth: '85%',
        mt: '10vh',
        mb: '2vh',
        display: 'flex',
        flexDirection: 'column',
        alignItems: 'flex-start',
        pointerEvents: 'none',
      }}
    >
      <Typography
        variant="h3"
        sx={{
          fontFamily: 'Benzin-Bold',
          fontSize: '3vw',
          backgroundImage:
            'linear-gradient(71deg, #F27121 0%, #E940CD 60%, #8A2387 100%)',
          WebkitBackgroundClip: 'text',
          WebkitTextFillColor: 'transparent',
          textTransform: 'uppercase',
          letterSpacing: '0.08em',
        }}
      >
        {headerConfig.title}
      </Typography>

      <Typography
        variant="body2"
        sx={{
          mt: 0.5,
          color: 'rgba(255,255,255,1)',
        }}
      >
        {headerConfig.subtitle}
      </Typography>
    </Box>
  );
}
