Modal dismiss working
This commit is contained in:
@@ -7,6 +7,7 @@ import { Image, Link, Text, Row, Column, BoundInput, BoundCheckbox, BoundButton
|
|||||||
import headerLogo from 'images/deighton.png'
|
import headerLogo from 'images/deighton.png'
|
||||||
import { versionInfo } from '../version'
|
import { versionInfo } from '../version'
|
||||||
import { FormBinder } from 'react-form-binder'
|
import { FormBinder } from 'react-form-binder'
|
||||||
|
import { reactAutoBind } from 'auto-bind2'
|
||||||
|
|
||||||
export class Login extends React.Component {
|
export class Login extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
@@ -34,8 +35,7 @@ export class Login extends React.Component {
|
|||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props)
|
super(props)
|
||||||
this.handleSubmit = this.handleSubmit.bind(this)
|
reactAutoBind(this)
|
||||||
this.handleMessageModalDismiss = this.handleMessageModalDismiss.bind(this)
|
|
||||||
this.state = {
|
this.state = {
|
||||||
waitModal: false,
|
waitModal: false,
|
||||||
messageModal: null,
|
messageModal: null,
|
||||||
@@ -88,6 +88,8 @@ export class Login extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const { messageModal, waitModal } = this.state
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Row minHeight='100%'>
|
<Row minHeight='100%'>
|
||||||
<Row.Item grow> </Row.Item>
|
<Row.Item grow> </Row.Item>
|
||||||
@@ -143,11 +145,11 @@ export class Login extends React.Component {
|
|||||||
</Row.Item>
|
</Row.Item>
|
||||||
<Row.Item grow> </Row.Item>
|
<Row.Item grow> </Row.Item>
|
||||||
|
|
||||||
<WaitModal active={this.state.waitModal} message='Logging In' />
|
<WaitModal active={waitModal} message='Logging In' />
|
||||||
|
|
||||||
<MessageModal error open={!!this.state.messageModal}
|
<MessageModal error open={!!messageModal}
|
||||||
title={this.state.messageModal ? this.state.messageModal.title : ''}
|
title={messageModal ? messageModal.title : ''}
|
||||||
message={this.state.messageModal ? this.state.messageModal.message : ''}
|
message={messageModal ? messageModal.message : ''}
|
||||||
onDismiss={this.handleMessageModalDismiss} />
|
onDismiss={this.handleMessageModalDismiss} />
|
||||||
</Row>
|
</Row>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import { Modal, Button, Icon, Column, Text } from 'ui'
|
import { Modal, Button, Column, Text } from 'ui'
|
||||||
|
|
||||||
export class MessageModal extends React.Component {
|
export class MessageModal extends React.Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
@@ -11,8 +11,10 @@ export class MessageModal extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const { onDismiss, open } = this.props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal open={this.props.open} onClose={this.props.onDismiss} closeOnDimmerClick={false}>
|
<Modal open={open} onCancel={onDismiss}>
|
||||||
<Column>
|
<Column>
|
||||||
<Column.Item>
|
<Column.Item>
|
||||||
<Text>{this.props.title}</Text>
|
<Text>{this.props.title}</Text>
|
||||||
@@ -21,9 +23,7 @@ export class MessageModal extends React.Component {
|
|||||||
<Text>{this.props.message}</Text>
|
<Text>{this.props.message}</Text>
|
||||||
</Column.Item>
|
</Column.Item>
|
||||||
<Column.Item>
|
<Column.Item>
|
||||||
<Button onClick={this.props.onDismiss}>
|
<Button onClick={onDismiss}>OK</Button>
|
||||||
<Icon name='checkmark' /> OK
|
|
||||||
</Button>
|
|
||||||
</Column.Item>
|
</Column.Item>
|
||||||
</Column>
|
</Column>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|||||||
@@ -10,15 +10,16 @@ class Button extends Component {
|
|||||||
width: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),
|
width: PropTypes.oneOfType([ PropTypes.string, PropTypes.number ]),
|
||||||
visible: PropTypes.bool,
|
visible: PropTypes.bool,
|
||||||
disabled: PropTypes.bool,
|
disabled: PropTypes.bool,
|
||||||
name: PropTypes.name,
|
name: PropTypes.string,
|
||||||
|
onClick: PropTypes.func,
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { name, children, submit, width, visible, disabled } = this.props
|
const { name, children, submit, width, visible, disabled, onClick } = this.props
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<button name={name} type={!visible ? 'hidden' : submit ? 'submit' : 'button'} disabled={disabled}
|
<button name={name} type={!visible ? 'hidden' : submit ? 'submit' : 'button'} disabled={disabled}
|
||||||
style={[style.base, { width }]}>
|
style={[style.base, { width }]} onClick={onClick}>
|
||||||
{children}
|
{children}
|
||||||
</button>
|
</button>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class Checkbox extends Component {
|
|||||||
label: PropTypes.string,
|
label: PropTypes.string,
|
||||||
visible: PropTypes.bool,
|
visible: PropTypes.bool,
|
||||||
// disabled: PropTypes.bool,
|
// disabled: PropTypes.bool,
|
||||||
name: PropTypes.name,
|
name: PropTypes.string,
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
|
|||||||
@@ -7,9 +7,12 @@ import { Dimmer } from 'ui'
|
|||||||
class Modal extends Component {
|
class Modal extends Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
children: PropTypes.node,
|
children: PropTypes.node,
|
||||||
open: PropTypes.bool
|
open: PropTypes.bool,
|
||||||
|
// TODO: onCancel: PropTypes.func,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Capture ESC key https://stackoverflow.com/questions/3369593/how-to-detect-escape-key-press-with-pure-js-or-jquery
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Dimmer active={this.props.open}>
|
<Dimmer active={this.props.open}>
|
||||||
|
|||||||
Reference in New Issue
Block a user