import React, { useEffect, useState } from "react";
import AppContext from "../../particles/contexts/app-context";
import Header from "../../organisms/header";
import Footer from "../../organisms/footer";
import background from "../../../public/images/news/background.jpg";
import Image from "next/image";
import Blog from "../../molecules/blog";
import AppTemplate from "../../templates/app";
import { useTranslation } from "next-i18next";
import Pagination from "../../molecules/pagination/Pagination";
import Head from "next/head";

const News = ({ appData, blogs }: any) => {
  const { t } = useTranslation("common");

  const [collapsed, setCollapsed] = useState(false);

  useEffect(() => {
    const handlScroll = () => {
      if (window.scrollY >= 25) {
        setCollapsed(true);
      } else {
        setCollapsed(false);
      }
    };

    window.addEventListener("scroll", handlScroll);

    return () => window.removeEventListener("scroll", handlScroll);
  }, []);

  return (
    <AppContext.Provider value={appData}>
      <AppTemplate header={<Header variant="dark" collapsed={collapsed} />} footer={<Footer />}>
        <Head>
          <title>BASS</title>
        </Head>

        <div className="relative h-[350px] mb-8">
          <Image
            src={background}
            alt=""
            placeholder="blur"
            sizes="100vw"
            className="object-cover -z-[1]"
            fill
          />

          <div className="container">
            <h1 className="text-5xl text-white absolute bottom-22 uppercase">{t("Newsroom")}</h1>
          </div>
        </div>

        <div className="container flex flex-wrap mb-8">
          {blogs.data.map(({ id, name, description, img, date_time }: any) => (
            <div key={id} className="lg:w-1/4">
              <div className="m-3">
                <Blog id={id} name={name} des={description} img={img} time={date_time} isVertical />
              </div>
            </div>
          ))}

          <div className="flex justify-center w-full mt-4">
            <Pagination count={blogs.last_page} currentPage={blogs.current_page} />
          </div>
        </div>
      </AppTemplate>
    </AppContext.Provider>
  );
};

export default News;
