Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. # from radium pretty much
  2. BrowserStateMixin =
  3. getInitialState: ->
  4. return {
  5. hover: false
  6. focus: false
  7. active: false
  8. }
  9.  
  10. browserStateEvents: ->
  11. return {
  12. onMouseEnter: this._handleMouseEnter
  13. onMouseLeave: this._handleMouseLeave
  14. onMouseDown: this._handleMouseDown
  15. onMouseUp: this._handleMouseUp
  16. onFocus: this._handleFocus
  17. onBlur: this._handleBlur
  18. }
  19.  
  20. _callHandler: (handler, ev) ->
  21. currentHandler = @props[handler]
  22. if currentHandler
  23. currentHandler ev
  24.  
  25. _handleMouseEnter: (ev) ->
  26. @_callHandler "onMouseEnter", ev
  27. @setState hover: true
  28.  
  29. _handleMouseLeave: (ev) ->
  30. @_callHandler "onMouseLeave", ev
  31. @setState
  32. hover: false
  33. active: false
  34.  
  35. _handleMouseDown: (ev) ->
  36. @_callHandler "onMouseDown", ev
  37. @setState active: true
  38.  
  39. _handleMouseUp: (ev) ->
  40. @_callHandler "onMouseUp", ev
  41. @setState active: false
  42.  
  43. _handleFocus: (ev) ->
  44. @_callHandler "onFocus", ev
  45. @setState
  46. focus: true
  47.  
  48. _handleBlur: (ev) ->
  49. @_callHandler "onBlur", ev
  50. @setState
  51. focus: false
  52.  
  53. module.exports = BrowserStateMixin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement