Header.js 3.24 KB
import { getSession, signOut } from "next-auth/react";
import Image from "next/image";
import Link from "next/link";
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { cleanImage } from "../../services/imageHandling";
import { Button, Container, Form, Nav, Navbar } from "react-bootstrap";
import { loadUser } from "../../redux/actions/userActions";

const Header = () => {
  const { user, error } = useSelector(state => state.loadedUser);
  const dispatch = useDispatch();
  console.log("user", user);
  const [isSticky, setIsSticky] = useState(false);

  useEffect(() => {
    dispatch(loadUser());
  }, []);

  useEffect(() => {
    const handleScroll = () => {
      // Check if the scroll position is greater than a certain threshold
      const scrollY = window.scrollY || window.pageYOffset;
      setIsSticky(scrollY > 50);
    };

    // Attach the scroll event listener when the component mounts
    window.addEventListener("scroll", handleScroll);

    // Clean up the event listener when the component unmounts
    return () => {
      window.removeEventListener("scroll", handleScroll);
    };
  }, []);
  return (
    <header className={`header_wrap ${isSticky ? "stick" : ""}`}>
      <Navbar expand="lg" className="bg-body-tertiary">
        <Container fluid>
          <Navbar.Brand href="#">
            <span className="image-container">
              <Image layout="fill" alt="" className="image img-fluid" src="/images/Zango-logo.svg" />
            </span>
          </Navbar.Brand>
          <Navbar.Toggle aria-controls="navbarScroll" />
          <Navbar.Collapse id="navbarScroll">
            <Nav className=" my-2 my-lg-0" style={{ maxHeight: "100px" }} navbarScroll>
              <Nav.Link href="#action1">Blogs</Nav.Link>
              <Nav.Link href="#action2" className="gift-card">
                Gift Card
                <span className="image-container">
                  <Image layout="fill" className="image img-fluid" src="/images/icons/gift-card-icon.svg" alt="" />
                </span>
              </Nav.Link>
            </Nav>
            <Form className="d-flex me-3">
              <div className="header-search">
                <Form.Control type="search" placeholder="Search" className="me-2" aria-label="Search" />
                <Button className="search-icon" variant="outline-success">
                  <span className="image-container">
                    <Image layout="fill" alt="" className="image img-fluid" src="/images/icons/search-icon.svg" />
                  </span>
                </Button>
              </div>
            </Form>
            {/* {console.log(user.id)} */}
            {(user && user.id) ? (
              <div>
                {console.log("here")}
                <div><p>Brand Logo</p></div>
                <p>{user.phone}</p>
              </div>
            ) : (
              <div>
                <Button className="me-3" variant="primary">
                  Sign Up
                </Button>
                <Button className="" variant="primary">
                  Log In
                </Button>
              </div>
            )}
          </Navbar.Collapse>
        </Container>
      </Navbar>
    </header>
  );
};

export default Header;