/**
 * @module ApPureMixin
 */
'use strict'

const shallowEqual = require('fbjs/lib/shallowEqual')

/** @lends ApPureMixin */
const ApPureMixin = {

  // --------------------
  // Custom
  // --------------------

  $apPureMixin: true,

  // --------------------
  // Specs
  // --------------------

  shouldComponentUpdate (nextProps, nextState) {
    const s = this
    let { props, state } = s
    return !shallowEqual(props, nextProps) || !shallowEqual(state, nextState)
  }
}

export default ApPureMixin
