Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # from radium pretty much
- BrowserStateMixin =
- getInitialState: ->
- return {
- hover: false
- focus: false
- active: false
- }
- browserStateEvents: ->
- return {
- onMouseEnter: this._handleMouseEnter
- onMouseLeave: this._handleMouseLeave
- onMouseDown: this._handleMouseDown
- onMouseUp: this._handleMouseUp
- onFocus: this._handleFocus
- onBlur: this._handleBlur
- }
- _callHandler: (handler, ev) ->
- currentHandler = @props[handler]
- if currentHandler
- currentHandler ev
- _handleMouseEnter: (ev) ->
- @_callHandler "onMouseEnter", ev
- @setState hover: true
- _handleMouseLeave: (ev) ->
- @_callHandler "onMouseLeave", ev
- @setState
- hover: false
- active: false
- _handleMouseDown: (ev) ->
- @_callHandler "onMouseDown", ev
- @setState active: true
- _handleMouseUp: (ev) ->
- @_callHandler "onMouseUp", ev
- @setState active: false
- _handleFocus: (ev) ->
- @_callHandler "onFocus", ev
- @setState
- focus: true
- _handleBlur: (ev) ->
- @_callHandler "onBlur", ev
- @setState
- focus: false
- module.exports = BrowserStateMixin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement