d2-ui
Version:
78 lines (70 loc) • 1.95 kB
JSX
const React = require('react');
const ReactCSS = require('reactcss');
const Button = require('./Button.es6');
// You are going to want to extend ReactCSS.Component instead of just React.Component
export default class Dialog extends ReactCSS.Component {
classes() {
return {
// This is our default dialog class
'default': {
dialog: {
background: '#fff',
boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)',
borderRadius: '2px',
maxWidth: '400px',
},
body: {
padding: '24px',
},
title: {
fontSize: '20px',
fontWeight: '500',
paddingBottom: '20px',
color: 'rgba(0,0,0,.87)',
},
desc: {
fontSize: '17px',
lineHeight: '22px',
color: 'rgba(0,0,0,.47)',
margin: '0',
},
actions: {
margin: '0',
padding: '8px',
display: 'flex',
justifyContent: 'flex-end',
listStyleType: 'none',
},
button: {
marginLeft: '8px',
},
CancelButton: {
background: 'red',
},
},
// This class activates when `disabled: true` is passed as props
'disabled-true': {
AgreeButton: {
disabled: true,
},
},
};
}
render() {
return (
// You will notice the is syntax here, via `react-map-styles` package
// This handles mapping the styles to the elements
<div is="dialog">
<div is="body">
<div is="title">{ this.props.title }</div>
<p is="desc">{ this.props.description }</p>
</div>
<ul is="actions">
<li is="button"><Button is="CancelButton" label="Cancel" /></li>
<li is="button"><Button is="AgreeButton" label="Yes, I Agree" /></li>
</ul>
</div>
);
}
}
;