vkashti / app / page.tsx
page.tsx
Raw
import Link from 'next/link';
import { FaRegChessKnight } from 'react-icons/fa6';
import { LiaBirthdayCakeSolid } from 'react-icons/lia';
import { LuPartyPopper } from 'react-icons/lu';
import { MdOutlineQuiz } from 'react-icons/md';
import { MdWorkOutline } from 'react-icons/md';
import Image from 'next/image';
import { REVIEWS } from '@/data/reviews';
import HeroSection from './components/HeroSection';

// This metadata now works because we're removing 'use client' from the top level
export const metadata = {
  title: 'Вкъщи Бар | Коктейли, Събития и Настолни Игри в София',
  description: 'Вкъщи Бар е уютно място с приятелска атмосфера, където можете да се насладите на страхотни коктейли, вкусна храна, куизове и настолни игри.',
  keywords: ['вкъщи бар', 'коктейл бар софия', 'настолни игри', 'куизове', 'бар за рождени дни', 'бар за партита', 'фирмени събития']
};

// Animation and service data moved to client component
const SERVICES = [
  {
    image: '/birthday.webp',
    title: 'Рожден ден и специални поводи',
    description:
      'Организация на рождени дни, годишнини и други важни събития с персонализирани коктейли, игри и музика.',
    url: '/services/birthdays',
    cta: 'Резервирай'
  },
  {
    image: '/company.webp',
    title: 'Фирмени партита и частни събития',
    description:
      'Перфектното място за фирмени тържества или наемане на бара за частни събития.',
    url: '/services/companies',
    cta: 'Резервирай'
  },
  {
    image: '/bartender.webp',
    title: 'Наеми бармани за събития',
    description:
      'Професионални бармани за външни събития, като сватби, частни партита или корпоративни мероприятия.',
    url: '/services/hire-barman',
    cta: 'Резервирай'
  },
  {
    image: '/quiz.webp',
    title: 'Куиз вечери и турнири',
    description:
      'Организация на тематични куизове, настолни игри и турнири за групи приятели или компании.',
    url: '/services/quizes',
    cta: 'Резервирай'
  },
  {
    image: '/band.webp',
    title: 'Музика на живо и тематични вечери',
    description:
      'Жива музика, DJ вечери и тематични партита, съобразени с предпочитанията на гостите.',
    url: '/services/live-music',
    cta: 'Резервирай'
  },
  {
    image: '/bartending.webp',
    title: 'Коктейлни работилници',
    description: 'Уроци по приготвяне на коктейли за любители и ентусиасти.',
    url: '/services/become-barman',
    cta: 'Резервирай'
  }
];

const FAQ = [
  {
    question: 'Може ли да работя от бара?',
    answer:
      'Да, Вкъщи Бар е подходящ за работа от разстояние. На втория етаж имаме контакти на всяка маса, а интернетът е силен и надежден.'
  },
  {
    question: 'Какви събития организирате?',
    answer:
      'Организираме разнообразни събития – от куиз вечери и турнири с настолни игри до музикални събития на живо и тематични партита.'
  },
  {
    question: 'Мога ли да наема бара за частно събитие?',
    answer:
      'Да, предлагаме наем на бара за частни събития като рождени дни, фирмени партита и други специални поводи.'
  },
  {
    question: 'Предлагате ли храна в бара?',
    answer:
      'Да, предлагаме разнообразни сандвичи, сандвичи на клечка, плата и десерти, които се комбинират перфектно с напитките ни.'
  },
  {
    question: 'Нужна ли е резервация за събитията ви?',
    answer:
      'За някои събития, като куиз вечери или частни партита, е препоръчително да направите резервация, за да си осигурите място.'
  },
  {
    question: 'Имате ли опция за наем на бармани за външни събития?',
    answer:
      'Да, предлагаме наем на професионални бармани за вашите външни събития като сватби, частни партита и фирмени мероприятия.'
  },
  {
    question: 'Позволено ли е да идвате с домашни любимци?',
    answer:
      'Абсолютно! Ние сме pet-friendly и вашите четириноги приятели са добре дошли.'
  }
];

const MEDIA_ITEMS = [
  // Prioritize smallest images first for faster loading
  { src: '/img5.jpeg', alt: 'Вкъщи Бар Интериор', width: 300, height: 200, quality: 75 }, // 48KB
  { src: '/img4.jpeg', alt: 'Вкъщи Бар Атмосфера', width: 300, height: 200, quality: 75 }, // 72KB
  // Defer larger images
  { src: '/img1.jpeg', alt: 'Вкъщи Бар Настолни Игри', width: 400, height: 250, quality: 70 }, // 233KB
  { src: '/img2.jpeg', alt: 'Вкъщи Бар Коктейли', width: 400, height: 250, quality: 70 }, // 207KB
  { src: '/img3.jpeg', alt: 'Вкъщи Бар Интериор', width: 400, height: 250, quality: 70 }, // 232KB
  // Use next-gen formats with smaller sizes
  { src: '/bar1.webp', alt: 'Вкъщи Бар', width: 400, height: 250, quality: 65 },
  // Defer largest images to load last
  { src: '/bar2.webp', alt: 'Вкъщи Бар Обстановка', width: 400, height: 250, quality: 65 },
  { src: '/bar3.webp', alt: 'Вкъщи Бар Събития', width: 400, height: 250, quality: 65 },
  { src: '/bar4.webp', alt: 'Вкъщи Бар Екип', width: 400, height: 250, quality: 65 }
];

// Now the main page can be a server component
export default function MainPage() {
  return (
    <div className="max-w-6xl px-6 mx-auto">
      {/* Pre-rendered server component for LCP optimization */}
      <HeroSection />

      {/* The rest will be lazily rendered client components */}
      <ClientContent 
        mediaItems={MEDIA_ITEMS} 
        services={SERVICES} 
        faq={FAQ} 
      />
    </div>
  );
}

// Client components imported here
import { ClientContent } from './components/ClientContent';