Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

kr2sw/react-DnR

Repository files navigation

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"));

About

Dragable and Resizable window build with React.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • JavaScript 99.8%
  • HTML 0.2%

AltStyle によって変換されたページ (->オリジナル) /