From 73418f08ff19a88ee9577d80ac36f4a039949faa Mon Sep 17 00:00:00 2001 From: Davdeyang <1320501826@qq.com> Date: Mon, 17 Apr 2023 15:11:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:drawer=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/_test.tsx | 26 +++++++ src/components/drawer/index.css | 94 ++++++++++++++++++++++ src/components/drawer/index.less | 116 +++++++++++++++++++++++++++ src/components/drawer/index.tsx | 129 +++++++++++++++++++++++++++++++ 4 files changed, 365 insertions(+) create mode 100644 src/components/drawer/index.css create mode 100644 src/components/drawer/index.less create mode 100644 src/components/drawer/index.tsx diff --git a/src/_test.tsx b/src/_test.tsx index a10b147..0b70b32 100644 --- a/src/_test.tsx +++ b/src/_test.tsx @@ -5,19 +5,45 @@ import Upload from "./components/upload/upload"; import Tab from "./components/tab/tab"; import * as GOJI from "goji_ui"; import Input from "./components/input"; +import Drawer from "./components/drawer"; +import { Span } from "./dom"; function App() { const [visible, setVisible] = useState(false); const [ev, setEv] = useState(false); const [value, setValue] = useState(10); + const [open, setOpen] = useState(false); const handleClick = (e: unknown) => { setValue(e?.target.value); console.log("e", e?.target.value); }; + const showDrawer = () => { + setOpen(true); + }; + + const onClose = () => { + setOpen(false); + }; + return (
+ 标题是什么呀} + extra={} + > + {/*

kdsks

+

kdsks

*/} +
+ + + { + className?: string | undefined; + style?: React.CSSProperties | undefined; + /** + * position:抽屉位置 + * */ + position?: position | undefined; + children?: React.ReactNode | undefined; + /** + * title:抽屉标题 string类型 + */ + title?: React.ReactNode | undefined; + /** + * open:是否打开抽屉 boolean类型 + */ + open?: boolean | undefined; + /** + * onClose:关闭函数 + */ + onClose?: (e: any) => void | undefined; + /** + *size:预设抽屉宽度(或高度),default 378px 和 large 600px + */ + + size?: size | undefined; + /** + * maskClosable:点击蒙层是否允许关闭 默认值为true + */ + maskClosable?: boolean | undefined; + /** + * extra:抽屉右上角的操作区域 + */ + extra?: React.ReactNode | undefined; +} + +const Drawer: React.FC = (props) => { + const { + className, + style, + position = "right", + children, + title, + open, + onClose, + size = "default", + maskClosable = true, + } = props; + + const drawerPosition = { + left: "position-left", + right: "position-right", + bottom: "position-bottom", + top: "position-top", + }; + + console.log("position", position); + + return ( + <> + {open && ( +
+ {maskClosable ? ( +
+ ) : ( +
+ )} +
+
+
+ + + + + + + + {title || "title..."} +
+
extra
+
+
{children || "content..."}
+
+
+ )} + + ); +}; + +export default Drawer; From 84b2f39c6ad7353c147cb8df1a9ffda2c9af4d0b Mon Sep 17 00:00:00 2001 From: Davdeyang <1320501826@qq.com> Date: Mon, 17 Apr 2023 15:17:22 +0800 Subject: [PATCH 2/2] fix:delete console --- src/components/drawer/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/drawer/index.tsx b/src/components/drawer/index.tsx index 88f302d..605a0c2 100644 --- a/src/components/drawer/index.tsx +++ b/src/components/drawer/index.tsx @@ -60,7 +60,6 @@ const Drawer: React.FC = (props) => { top: "position-top", }; - console.log("position", position); return ( <>