56 lines
1.4 KiB
CoffeeScript
56 lines
1.4 KiB
CoffeeScript
context = window
|
|
logger = context.JK.logger
|
|
CategoryGroupIds = context.JK.CategoryGroupIds
|
|
|
|
@SessionTrackGain = React.createClass({
|
|
|
|
propTypes: {
|
|
gainType: React.PropTypes.string
|
|
}
|
|
|
|
getInitialState: () ->
|
|
{
|
|
mixers: @props.mixers,
|
|
behaviors: @props.behaviors || {}
|
|
}
|
|
|
|
faderChanged: (e, data) ->
|
|
$target = $(this)
|
|
groupId = $target.data('groupId')
|
|
mixers = @state.mixers.mixer
|
|
|
|
MixerActions.faderChanged(data, mixers, @props.gainType)
|
|
|
|
render: () ->
|
|
# mixer can be a single item or array
|
|
mixer = @state.mixers?.mixer
|
|
if mixer && $.isArray(mixer)
|
|
mixer = mixer[0]
|
|
|
|
mixerId = mixer?.id
|
|
|
|
`<div className="track-gain">
|
|
<div className="fader vertical" data-control="fader" data-fader-id={mixerId} data-orientation="vertical">
|
|
<div className="handle" data-control="fader-handle">
|
|
<img src="/assets/content/slider_gain_vertical.png" width="28" height="11"/>
|
|
</div>
|
|
</div>
|
|
</div>`
|
|
|
|
componentDidMount: () ->
|
|
$root = jQuery(this.getDOMNode())
|
|
if !$root.is('.track-gain')
|
|
logger.error("unknown root node")
|
|
|
|
context.JK.FaderHelpers.renderFader2($root, {faderType: 'vertical'});
|
|
|
|
# Initialize gain position
|
|
mixer = @state.mixers?.mixer
|
|
if mixer && $.isArray(mixer)
|
|
mixer = mixer[0]
|
|
|
|
MixerActions.initGain(mixer)
|
|
|
|
# watch for fader change events
|
|
$root.on('fader_change', @faderChanged);
|
|
}) |