Skip to content
Snippets Groups Projects
TrackChangeControlTool.js 879 B
Newer Older
import { Tool } from 'substance'
class TrackChangeControlTool extends Tool {
  constructor (parent, props, config) {
    super(parent, props, config)
    this.disabled = false
  }
chris's avatar
chris committed

  getClassNames () {
    return 'sm-target-track-change-enable'
  }

  willReceiveProps (props) {
    if (!this.canAct()) this.disabled = true
  }

  renderButton ($$) {
    const el = super.renderButton($$)
    const trackChangesMode = this.isTrackChangesOn()
    if (trackChangesMode === true) el.addClass('track-changes-active')
    if (!this.canAct()) el.attr('disabled', 'true')
    return el
  }

  isTrackChangesOn () {
    // TODO -- ??
    return this.parent._owner.props.trackChanges

  canAct () {
    const provider = this.context.trackChangesProvider
    return provider.canAct()
  }

TrackChangeControlTool.type = 'track-change-enable'

export default TrackChangeControlTool