ldx-widgets
Version:
widgets
74 lines (56 loc) • 1.56 kB
text/coffeescript
React = require 'react'
createClass = require 'create-react-class'
PropTypes = require 'prop-types'
{li, div, button} = require 'react-dom-factories'
FormAlertItem = createClass
displayName: 'FormAlertItem'
propTypes:
isAlert: PropTypes.bool
message: PropTypes.oneOfType [
PropTypes.string
PropTypes.number
]
getInitialState: ->
leave: no
enter: yes
componentDidMount: ->
{removeTimer} = .alert
setTimeout(, removeTimer) if removeTimer?
.addEventListener 'animationend',
render: ->
{alert} =
{isAlert, message} = alert
{enter, leave} =
className = if isAlert then 'alert' else 'success'
className += ' animate-in' if enter
className += ' animate-out' if leave
li {
className
ref: () =>
}, [
div {
key: 'title'
className: 'message'
}, [
div {
key: 'message'
className: 'alert-text'
title: message
}, message
button {
key: 'remove-item'
onClick:
className: 'alert-close'
}
]
]
didEnter: ->
.removeEventListener 'animationend',
{enter: no}
handleRemove: ->
.addEventListener 'animationend',
{leave: yes}
removeAlert: ->
.removeEventListener 'animationend',
.removeAlert .alert
module.exports = FormAlertItem