Advertisement
Filigs

Untitled

Nov 30th, 2022
1,029
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.90 KB | Software | 0 0
  1. import { HiMenu, HiX } from "react-icons/hi";
  2. import { icons } from "./icons";
  3. import Menu from "react-burger-menu/lib/menus/slide";
  4. import styles from "styles/sidePanel.module.css";
  5. import { links } from "./navItems";
  6. import { render } from "react-dom";
  7. import React from "react";
  8.  
  9. export default class extends React.Component {
  10.   constructor(props) {
  11.     super(props);
  12.     this.state = {
  13.       menuOpen: false,
  14.     };
  15.   }
  16.  
  17.   // This keeps your state in sync with the opening/closing of the menu
  18.   // via the default means, e.g. clicking the X, pressing the ESC key etc.
  19.   handleStateChange(state) {
  20.     this.setState({ menuOpen: state.isOpen });
  21.   }
  22.  
  23.   // This can be used to close the menu, e.g. when a user clicks a menu item
  24.   closeMenu() {
  25.     this.setState({ menuOpen: false });
  26.   }
  27.  
  28.   // This can be used to toggle the menu, e.g. when using a custom icon
  29.   // Tip: You probably want to hide either/both default icons if using a custom icon
  30.   // See https://github.com/negomi/react-burger-menu#custom-icons
  31.   toggleMenu() {
  32.     this.setState((state) => ({ menuOpen: !state.menuOpen }));
  33.   }
  34.   // This can be used to toggle the menu, e.g. when using a custom icon
  35.   // Tip: You probably want to hide either/both default icons if using a custom icon
  36.   // See https://github.com/negomi/react-burger-menu#custom-icons
  37.  
  38.   render() {
  39.     return (
  40.       <>
  41.         <div>
  42.           {this.menuOpen ? (
  43.             <>
  44.               <Menu
  45.                 customBurgerIcon={
  46.                   <HiMenu
  47.                     className={
  48.                       styles.bmBurgerButton +
  49.                       styles.bmBurgerBars +
  50.                       styles.bmBurgerBarsHover
  51.                     }
  52.                     onClick={() => toggleMenu()}
  53.                   />
  54.                 }
  55.               />
  56.             </>
  57.           ) : (
  58.             <>
  59.               <Menu
  60.                 customCrossIcon={
  61.                   <HiX style={styles.bmCrossButton + styles.bmCross} />
  62.                 }
  63.                 onClick={() => toggleMenu()}
  64.               />
  65.             </>
  66.           )}
  67.         </div>
  68.         <Menu
  69.           left
  70.           styles={styles.bmMenu + styles.bmOverlay}
  71.           width={"50%"}
  72.           isOpen={this.state.menuOpen}
  73.           onStateChange={(state) => this.handleStateChange(state)}
  74.           disableOverlayClick
  75.         >
  76.           <div styles={styles.bmMenuWrap} className="overflow-auto">
  77.             <ul styles={styles.bmItemList} key={links.id}>
  78.               <li styles={styles.bmListTitle}>{"Hot News"}</li>
  79.               {links.map(({ title }) => (
  80.                 <li
  81.                   styles={styles.bmItem}
  82.                   key={links.title}
  83.                   onClick={() => this.closeMenu()}
  84.                 >
  85.                   {title}
  86.                 </li>
  87.               ))}
  88.             </ul>
  89.           </div>
  90.         </Menu>
  91.       </>
  92.     );
  93.   }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement