티스토리 뷰
반응형
AntDesign에서 Modal을 Draggable로 만들기 위해서는 react-draggable 모듈을 사용하면 간단히 구현이 가능합니다.
- react-draggable 모듈을 설치합니다.
> npm install react-draggable
- AntDesign의 Modal과 Draggable을 조합하여 모달을 구성합니다.
import { Button, Modal } from 'antd'; import React, { useRef, useState } from 'react'; import Draggable from 'react-draggable'; const ModalSample: React.FC = () => { const draggleRef = useRef<HTMLDivElement>(null); const [visible, setVisible] = useState(false); const showModal = () => { setVisible(true); }; const handleModalOk = (e: React.MouseEvent<HTMLElement>) => { setVisible(false); }; const handleModalCancel = (e: React.MouseEvent<HTMLElement>) => { setVisible(false); }; return ( <> <Button onClick={showModal}>Modal 열기</Button> <Modal title='Draggable Modal' visible={visible} onOk={handleModalOk} onCancel={handleModalCancel} modalRender={modal => ( <Draggable handle='.ant-modal-title'> <div ref={draggleRef}>{modal}</div> </Draggable> )} > <p>이제 모달을 드래그할 수 있습니다</p> </Modal> </> ); }; export default ModalSample;
- 위 코드에서 <Draggable> 컴포넌트의 handle 속성을 지정하고 있습니다.
handle 속성은 드래그 동작을 실행 시킬 엘리먼트를 지정하는 속성입니다. 이 속성에 모달 타이틀바 Class Name을 지정하여, 모달의 제목으로 드래그가 가능하도록 하였습니다.
References
- AntDesign Modal : https://ant.design/components/modal/
- ReactDraggable : https://github.com/react-grid-layout/react-draggable
'Web > React' 카테고리의 다른 글
[Node.js] ERR_OSSL_EVP_UNSUPPORTED 오류 (0) | 2023.07.24 |
---|---|
[React] Material-UI를 쓰지 말아야 하는 이유 (0) | 2022.07.15 |
[React] MUI 장점과 단점 (1) | 2022.07.14 |
[React] ASP.NET Core React Project Template 사용 (0) | 2021.07.23 |
[React] package.json (0) | 2021.07.15 |
[React] npm 설치 중 이슈 - fsevents (0) | 2021.07.07 |
[React] 리덕스를 이용한 상태관리 (0) | 2021.07.04 |
[React] 클래스형 컴포넌트 (0) | 2021.06.23 |
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- Xamarin.iOS
- Xamarin.Forms
- ios
- Xamarin.Forms eBook
- c#
- MS SQL
- StringComparison
- ASP.NET Core
- React
- Vue
- .NET Standard
- material-ui
- Xamarin
- TypeScript
- Android
- flutter
- npm
- Xamarin.Forms 요약
- VisualStudio
- WPF
- Total
- Today
- Yesterday