aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/components/alert/index.js
diff options
context:
space:
mode:
authorDan Finlay <542863+danfinlay@users.noreply.github.com>2018-08-08 02:31:42 +0800
committerGitHub <noreply@github.com>2018-08-08 02:31:42 +0800
commit0601df9dae488d997277bb6b52c28df27546e27c (patch)
treeae33a0c4610b9a9e865c797258232542a72f57b6 /ui/app/components/alert/index.js
parent4598554fea7b9435e5cbecc4735c479ffbadf37e (diff)
parentf6490a2a6eda943a374c01df5884acb07ba28869 (diff)
downloadtangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.tar
tangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.tar.gz
tangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.tar.bz2
tangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.tar.lz
tangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.tar.xz
tangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.tar.zst
tangerine-wallet-browser-0601df9dae488d997277bb6b52c28df27546e27c.zip
Merge pull request #4954 from MetaMask/v4.9.0
V4.9.0
Diffstat (limited to 'ui/app/components/alert/index.js')
-rw-r--r--ui/app/components/alert/index.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/ui/app/components/alert/index.js b/ui/app/components/alert/index.js
new file mode 100644
index 000000000..5620d847a
--- /dev/null
+++ b/ui/app/components/alert/index.js
@@ -0,0 +1,62 @@
+const { Component } = require('react')
+const PropTypes = require('prop-types')
+const h = require('react-hyperscript')
+
+class Alert extends Component {
+
+ constructor (props) {
+ super(props)
+
+ this.state = {
+ visble: false,
+ msg: false,
+ className: '',
+ }
+ }
+
+ componentWillReceiveProps (nextProps) {
+ if (!this.props.visible && nextProps.visible) {
+ this.animateIn(nextProps)
+ } else if (this.props.visible && !nextProps.visible) {
+ this.animateOut(nextProps)
+ }
+ }
+
+ animateIn (props) {
+ this.setState({
+ msg: props.msg,
+ visible: true,
+ className: '.visible',
+ })
+ }
+
+ animateOut (props) {
+ this.setState({
+ msg: null,
+ className: '.hidden',
+ })
+
+ setTimeout(_ => {
+ this.setState({visible: false})
+ }, 500)
+
+ }
+
+ render () {
+ if (this.state.visible) {
+ return (
+ h(`div.global-alert${this.state.className}`, {},
+ h('a.msg', {}, this.state.msg)
+ )
+ )
+ }
+ return null
+ }
+}
+
+Alert.propTypes = {
+ visible: PropTypes.bool.isRequired,
+ msg: PropTypes.string,
+}
+module.exports = Alert
+