ldx-widgets
Version:
widgets
74 lines (61 loc) • 1.5 kB
text/coffeescript
React = require 'react'
{Flux} = require 'delorean'
animationMixin = require '../mixins/animation_mixin'
NoAccess = React.createFactory require('./no_access')
{div, button} = React.DOM
AlertModal = React.createClass
displayName: 'AlertModal'
mixins: [animationMixin, Flux.mixins.storeListener]
watchStores: ['popoverModal']
enterStateStart:
scale: .9
enterStateEnd:
scale: 1
enterEasing: 'easeOutElastic'
enterDuration: 600
propTypes:
okText: React.PropTypes.string
cb: React.PropTypes.func
message: React.PropTypes.string.isRequired
getDefaultProps: ->
okText: 'OK'
handleClick: (e) ->
e.stopPropagation()
close: ->
# Fire a callback if present
@props.cb?()
@trigger('closeModal')
render: ->
{scale} = @state
{message, okText} = @props
div {
className: 'modal alert'
onClick: @handleClick
style:
transform: "scale(#{scale})"
WebkitTransform: "scale(#{scale})"
msTransform: "scale(#{scale})"
}, [
div {
key: 'message'
className: 'message'
},
NoAccess {
displayText: message
styleOverrides:
fontSize: '14px'
background: 'none'
paddingTop: 10
}
div {
key: 'ok'
className: 'buttons'
}, [
button {
className: 'prmy ok'
key: 'ok'
onClick: @close
}, okText
]
]
module.exports = AlertModal