🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

react-DnR is a React component used for creating draggable and resizable windows/panels in the web application.

Others React

Documentation

react-DnR

==============

Draggable and Resizable window build with React.js.

Try it out here: http://yongxu.ren/react-DnR/

Installation

The easiest way to use react-DnR is to install it from npm and include it in your React build process (using Webpack, Browserify, etc).

npm install --save react-dnr 

Example

import React from "react"; import ReactDOM from "react-dom"; import DnR from '../modules/DnR';  import {OSXTheme, WindowsTheme} from '../modules/themes'; const paneStyle = { 	width: '80%', 	height: '50%', 	top: '25%', 	left: '10%', 	backgroundColor: 'rgba(0, 0, 0, 0.2)' };  const buttonStyle = { 		paddingLeft: 10, 		textAlign: 'center' };  class App extends React.Component {   constructor(props) {     super(props);     this.state = {       minimize: false     }; 		this.OSX = OSXTheme({ 			title: 'OSX Theme', 			onClose: ()=>this.refs.subdnr.minimize(), 			onMinimize: ()=>this.refs.subdnr.minimize(), 			onMaximize: ()=>this.refs.subdnr.maximize(), 		}); 		this.Windows = WindowsTheme({ 			title: 'React DnR', 			onClose: ()=>this.refs.dnr.minimize(), 			onMinimize: ()=>this.refs.dnr.minimize(), 			onMaximize: ()=>this.refs.dnr.maximize(), 		}); 	} 	render() { 		return ( 			<div style={{ 				background:'#3a7bd5', 				top: 0, 				left : 0, 				width: '100%', 				height: '100%', 				position: 'fixed', 				backgroundImage: `url(${require('../img/bg1.png')})` 			}}> 				<div style={{ 					display: 'flex', 					alignItems: 'center', 					verticalAlign: 'baseline', 					padding: 10, 				}}> 					<button 						style={buttonStyle} 						onClick={()=>this.refs.dnr.minimize()}> 						minimize 					</button> 					<button 						style={buttonStyle} 						onClick={()=>this.refs.dnr.maximize()}> 						maximize 					</button> 					<button 						style={buttonStyle} 						onClick={()=>this.refs.dnr.restore()}> 						restore 					</button> 				</div> 				<DnR 					ref='dnr' 					{...this.Windows} 					cursorRemap={(c) => c === 'move' ? 'default' : null} 					style={paneStyle}> 					<button 						onClick={()=>this.refs.subdnr.minimize()}> 						minimize 					</button> 					<button 						onClick={()=>this.refs.subdnr.transform({ 							top: 0, 							left: 0, 							width: this.refs.dnr.getFrameRect().width, 							height: this.refs.dnr.getFrameRect().height})}> 						maximize 					</button> 					<button 						onClick={()=>this.refs.subdnr.restore()}> 						restore 					</button> 					<DnR 						ref='subdnr' 						{...this.OSX} 						cursorRemap={(c) => c === 'move' ? 'default' : null} 						style={paneStyle} 						boundary={{top: 0}}> 						content 					</DnR> 				</DnR> 			</div> 		); 	} }   ReactDOM.render(<App/>, document.getElementById("main"));

You May Also Like