index.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use client";
  2. import { useSystemStore } from "@/stores/useSystemStore";
  3. import { FC, memo, ReactNode } from "react";
  4. import HeaderTitle from "./HerderTitle";
  5. import styles from "./style.module.scss";
  6. // import HeaderRight from "@/components/Header/HeaderRight";
  7. import dynamic from "next/dynamic";
  8. const HeaderRight = dynamic(() => import("@/components/Header/HeaderRight"));
  9. /**
  10. * @description HeaderProps
  11. * @param {boolean} headerPlaceholder 是否展示展位元素00
  12. * @param {() => ReactNode} headerRender 自定义渲染
  13. */
  14. export interface HeaderProps {
  15. // headerRender?: () => ReactNode;
  16. // menuHandler?: () => void;
  17. // menuRender?: () => ReactNode;
  18. visibleLanguage?: boolean;
  19. }
  20. const Header: FC<HeaderProps> = (props) => {
  21. const { visibleLanguage = true } = props;
  22. // 展开按钮
  23. const { isCollapse, setCollapse } = useSystemStore((state) => ({
  24. isCollapse: state.isCollapse,
  25. setCollapse: state.setCollapse,
  26. }));
  27. const menuHandler = () => {
  28. setCollapse(!isCollapse);
  29. };
  30. // const clx = clsx(isCollapse ? styles.cross : "");
  31. return (
  32. <header className={styles.headerWrap}>
  33. <div className={styles.headerMain}>
  34. <div className={styles.headerLeft} onClick={menuHandler}>
  35. <i className="iconfont icon-caidan1 text-8 text-[#87ccd9]"></i>
  36. {/* <div>
  37. <div className={styles.bar}></div>
  38. <div className={styles.bar} style={{ width: "0.1389rem" }}></div>
  39. <div className={styles.bar}></div>
  40. </div> */}
  41. </div>
  42. <HeaderTitle visibleLanguage={visibleLanguage} />
  43. <HeaderRight />
  44. </div>
  45. </header>
  46. );
  47. };
  48. export default memo(Header);