59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
import React from 'react';
|
|
import { connect } from 'react-redux';
|
|
import Prompt from 'react-native-prompt';
|
|
|
|
import { translate } from '../../i18n';
|
|
|
|
import AbstractDialog from './AbstractDialog';
|
|
|
|
/**
|
|
* Native dialog using Prompt.
|
|
*/
|
|
class Dialog extends AbstractDialog {
|
|
|
|
/**
|
|
* Native sialog component's property types.
|
|
*
|
|
* @static
|
|
*/
|
|
static propTypes = {
|
|
/**
|
|
* I18n key to put as body title.
|
|
*/
|
|
bodyKey: React.PropTypes.string
|
|
}
|
|
|
|
/**
|
|
* Implements React's {@link Component#render()}.
|
|
*
|
|
* @inheritdoc
|
|
* @returns {ReactElement}
|
|
*/
|
|
render() {
|
|
const {
|
|
cancelDisabled,
|
|
cancelTitleKey,
|
|
bodyKey,
|
|
okDisabled,
|
|
okTitleKey,
|
|
t,
|
|
titleKey
|
|
} = this.props;
|
|
|
|
return (
|
|
<Prompt
|
|
cancelText = { cancelDisabled
|
|
? undefined : t(cancelTitleKey || 'dialog.Cancel') }
|
|
onCancel = { this._onCancel }
|
|
onSubmit = { this._onSubmit }
|
|
placeholder = { t(bodyKey) }
|
|
submitText = { okDisabled
|
|
? undefined : t(okTitleKey || 'dialog.Ok') }
|
|
title = { t(titleKey) }
|
|
visible = { true } />
|
|
);
|
|
}
|
|
}
|
|
|
|
export default translate(connect()(Dialog));
|