From b8e1927e82949bd2ddca3519bea66603aaf98244 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 21 Jul 2015 14:13:59 +0100 Subject: [PATCH] Use getDefaultProps instead of setting porps --- skins/base/views/organisms/ErrorDialog.js | 29 +++-------------- src/controllers/organisms/ErrorDialog.js | 39 +++++++++++++++++++++++ 2 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 src/controllers/organisms/ErrorDialog.js diff --git a/skins/base/views/organisms/ErrorDialog.js b/skins/base/views/organisms/ErrorDialog.js index 847e796f..fd34a734 100644 --- a/skins/base/views/organisms/ErrorDialog.js +++ b/skins/base/views/organisms/ErrorDialog.js @@ -17,7 +17,7 @@ limitations under the License. 'use strict'; /* - * Usage: + * Usage: * Modal.createDialog(ErrorDialog, { * title: "some text", (default: "Error") * description: "some more text", @@ -28,31 +28,11 @@ limitations under the License. */ var React = require('react'); +var ErrorDialogController = require("../../../../src/controllers/organisms/ErrorDialog"); module.exports = React.createClass({ displayName: 'ErrorDialog', - - // can't use getDefaultProps, see Modal.js - componentWillMount: function() { - if (!this.props.title) { - this.props.title = "Error"; - } - if (!this.props.description) { - this.props.description = "An error has occurred."; - } - if (!this.props.button) { - this.props.button = "OK"; - } - if (this.props.focus === undefined) { - this.props.focus = true; - } - if (!this.props.onClose) { - var self = this; - this.props.onClose = function() { - self.props.onFinished(); - }; - } - }, + mixins: [ErrorDialogController], render: function() { return ( @@ -61,11 +41,10 @@ module.exports = React.createClass({ {this.props.title} {this.props.description}
- ); } }); - diff --git a/src/controllers/organisms/ErrorDialog.js b/src/controllers/organisms/ErrorDialog.js new file mode 100644 index 00000000..73f66c87 --- /dev/null +++ b/src/controllers/organisms/ErrorDialog.js @@ -0,0 +1,39 @@ +/* +Copyright 2015 OpenMarket Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +'use strict'; + +var React = require("react"); + +module.exports = { + propTypes: { + title: React.PropTypes.string, + description: React.PropTypes.string, + button: React.PropTypes.string, + focus: React.PropTypes.bool, + onFinished: React.PropTypes.func.isRequired, + }, + + getDefaultProps: function() { + var self = this; + return { + title: "Error", + description: "An error has occurred.", + button: "OK", + focus: true, + }; + }, +};