UNPKG

ldx-widgets

Version:

widgets

85 lines (71 loc) 1.89 kB
React = require 'react' animationMixin = require '../mixins/animation_mixin' NoAccess = React.createFactory require('./no_access') {div, button} = React.DOM AlertModal = React.createClass displayName: 'AlertModal' mixins: [animationMixin] enterStateStart: scale: .9 enterStateEnd: scale: 1 enterEasing: 'easeOutElastic' enterDuration: 600 propTypes: close: React.PropTypes.func.isRequired okText: React.PropTypes.string cancelText: React.PropTypes.string cb: React.PropTypes.func message: React.PropTypes.oneOfType([ React.PropTypes.string React.PropTypes.element ]).isRequired getDefaultProps: -> okText: 'OK' cancelText: 'Cancel' handleClick: (e) -> e.stopPropagation() close: -> @props.close() confirm: -> # Fire a callback if present @props.cb?() @props.close() render: -> {scale} = @state {message, okText, cancelText, cb} = @props messageAsChild = typeof message is 'object' div { className: 'modal alert' onClick: @handleClick style: transform: "scale(#{scale})" WebkitTransform: "scale(#{scale})" msTransform: "scale(#{scale})" }, [ div { key: 'message' className: 'message' }, if messageAsChild then message else NoAccess { displayText: message styleOverrides: fontSize: '14px' background: 'none' paddingTop: 10 } div { key: 'ok' className: 'buttons' }, [ button { className: 'okay-cancel cancel' key: 'cancel' onClick: @close }, cancelText if cb? button { className: if cb? then 'okay-cancel okay' else 'prmy ok' key: 'ok' onClick: @confirm }, okText ] ] module.exports = AlertModal