|
@@ -1,19 +1,46 @@
|
|
|
-const Drawer = ({isOpen, onClose, children}) => {
|
|
|
- console.log(isOpen);
|
|
|
- return (
|
|
|
- <>
|
|
|
- {/* 遮罩层 */}
|
|
|
- {isOpen && <div className="drawer-overlay" onClick={onClose}/>}
|
|
|
+import React, {useEffect, useState} from "react";
|
|
|
+import styles from "./Drawer.module.css";
|
|
|
+import eventBus from "../../uitls/EventBus";
|
|
|
|
|
|
- {/* 抽屉导航 */}
|
|
|
- <div className={`drawer ${isOpen ? 'drawer-open' : ''}`}>
|
|
|
- <div className="drawer-content">
|
|
|
- <button className="drawer-close" onClick={onClose}>×</button>
|
|
|
- {children}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </>
|
|
|
- );
|
|
|
+const Drawer = () => {
|
|
|
+ const [drawerOpen, setDrawerOpen] = useState(false);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ eventBus.on("drawerState", (state) => {
|
|
|
+ setDrawerOpen(state);
|
|
|
+ });
|
|
|
+ return () => {
|
|
|
+ eventBus.off("drawerState");
|
|
|
+ };
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ return (<div className={styles.container}>
|
|
|
+ {/* 手机端菜单按钮 */}
|
|
|
+ {/*<button*/}
|
|
|
+ {/* className={styles.menuButton}*/}
|
|
|
+ {/* onClick={() => setDrawerOpen(true)}*/}
|
|
|
+ {/*>*/}
|
|
|
+ {/* ☰*/}
|
|
|
+ {/*</button>*/}
|
|
|
+
|
|
|
+ {/* 左侧抽屉菜单 */}
|
|
|
+ <div
|
|
|
+ className={`${styles.drawer} ${drawerOpen ? styles.open : ""}`}
|
|
|
+ >
|
|
|
+ <button
|
|
|
+ className={styles.closeButton}
|
|
|
+ onClick={() => setDrawerOpen(false)}
|
|
|
+ >
|
|
|
+ ✕
|
|
|
+ </button>
|
|
|
+ <ul className={styles.menuList}>
|
|
|
+ <li>首页</li>
|
|
|
+ <li>关于我们</li>
|
|
|
+ <li>服务</li>
|
|
|
+ <li>联系</li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>);
|
|
|
};
|
|
|
|
|
|
export default Drawer;
|