mirror of
https://github.com/opensupports/opensupports.git
synced 2025-09-26 11:29:05 +02:00
71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
import React from 'react';
|
|
|
|
import i18n from 'lib-app/i18n';
|
|
import Button from 'core-components/button';
|
|
import ModalContainer from 'app-components/modal-container';
|
|
|
|
class AreYouSure extends React.Component {
|
|
static propTypes = {
|
|
description: React.PropTypes.string,
|
|
onYes: React.PropTypes.func
|
|
};
|
|
|
|
static contextTypes = {
|
|
closeModal: React.PropTypes.func
|
|
};
|
|
|
|
static openModal(description, onYes) {
|
|
ModalContainer.openModal(
|
|
<AreYouSure description={description} onYes={onYes} />
|
|
);
|
|
}
|
|
|
|
componentDidMount() {
|
|
this.refs.yesButton && this.refs.yesButton.focus();
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<div className="are-you-sure" role="dialog" aria-labelledby="are-you-sure__header" aria-describedby="are-you-sure__description">
|
|
<div className="are-you-sure__header" id="are-you-sure__header">
|
|
{i18n('ARE_YOU_SURE')}
|
|
</div>
|
|
<div className="are-you-sure__description" id="are-you-sure__description">
|
|
{this.props.description}
|
|
</div>
|
|
<div className="are-you-sure__buttons">
|
|
<div className="are-you-sure__yes-button">
|
|
<Button type="secondary" size="small" onClick={this.onYes.bind(this)} ref="yesButton" tabIndex="2">
|
|
{i18n('YES')}
|
|
</Button>
|
|
</div>
|
|
<div className="are-you-sure__no-button">
|
|
<Button type="link" size="auto" onClick={this.onNo.bind(this)} tabIndex="2">
|
|
{i18n('CANCEL')}
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
onYes() {
|
|
this.closeModal();
|
|
|
|
if (this.props.onYes) {
|
|
this.props.onYes();
|
|
}
|
|
}
|
|
|
|
onNo() {
|
|
this.closeModal();
|
|
}
|
|
|
|
closeModal() {
|
|
if (this.context.closeModal) {
|
|
this.context.closeModal();
|
|
}
|
|
}
|
|
}
|
|
|
|
export default AreYouSure; |