2015-07-15 15:04:45 +00:00
|
|
|
context = window
|
|
|
|
|
MIX_MODES = context.JK.MIX_MODES
|
|
|
|
|
|
|
|
|
|
@SessionVolumeSettingsBtn = React.createClass({
|
|
|
|
|
|
|
|
|
|
mixins: [Reflux.listenTo(@MixerStore,"onInputsChanged")]
|
|
|
|
|
|
|
|
|
|
onInputsChanged: (sessionMixers) ->
|
2015-07-24 19:21:45 +00:00
|
|
|
|
|
|
|
|
musicMixers = sessionMixers.mixers.simulatedMusicCategoryMixers[ MIX_MODES.PERSONAL ]
|
|
|
|
|
chatMixers = sessionMixers.mixers.simulatedChatCategoryMixers[ MIX_MODES.PERSONAL ]
|
|
|
|
|
|
|
|
|
|
@setState(musicMixers: musicMixers, chatMixers: chatMixers)
|
|
|
|
|
|
|
|
|
|
getInitialState: () ->
|
|
|
|
|
{ musicMixers: null, chatMixers: null}
|
2015-07-15 15:04:45 +00:00
|
|
|
|
|
|
|
|
render: () ->
|
2015-07-24 19:21:45 +00:00
|
|
|
|
|
|
|
|
musicMixers = @state.musicMixers
|
|
|
|
|
chatMixers = @state.chatMixers
|
|
|
|
|
|
|
|
|
|
# find out if the first mixer on the music mixers or chat mixers is muted; if so, switch to a muted icon
|
|
|
|
|
|
|
|
|
|
isMuted = musicMixers?.first.mute || chatMixers?.first.mute
|
|
|
|
|
|
|
|
|
|
volumeIconClasses = classNames({
|
|
|
|
|
'volume-icon' : true
|
|
|
|
|
'enabled' : !isMuted
|
|
|
|
|
'muted' : isMuted
|
|
|
|
|
})
|
|
|
|
|
|
2015-07-15 15:04:45 +00:00
|
|
|
`<a className="session-volume-settings button-grey left">
|
2015-07-24 19:21:45 +00:00
|
|
|
<div className={volumeIconClasses}></div>
|
2015-07-15 15:04:45 +00:00
|
|
|
VOLUME
|
|
|
|
|
</a>`
|
|
|
|
|
|
|
|
|
|
componentDidMount: () ->
|
|
|
|
|
$root = $(this.getDOMNode())
|
|
|
|
|
|
|
|
|
|
context.JK.interactReactBubble(
|
|
|
|
|
$root,
|
|
|
|
|
'SessionSelfVolumeHover',
|
|
|
|
|
() =>
|
2015-07-24 19:21:45 +00:00
|
|
|
{inputGroupMixers: @state.musicMixers, chatGroupMixers: @state.chatMixers}
|
2015-07-15 15:04:45 +00:00
|
|
|
,
|
|
|
|
|
{width:470, positions:['right', 'bottom', 'left'], offsetParent:$root.closest('.screen')})
|
|
|
|
|
|
|
|
|
|
})
|