handleInteractionAndPropagateToSubviews(interaction, viewRefs) {
    const {
      subviews,
      visibleArea
    } = this;

    if (visibleArea.size.height === 0) {
      return false;
    } // Pass the interaction to subviews first,
    // so they have the opportunity to claim it before it bubbles.
    //
    // Views are painted first to last,
    // so they should process interactions last to first,
    // so views in front (on top) can claim the interaction first.


    for (let i = subviews.length - 1; i >= 0; i--) {
      const subview = subviews[i];

      if (rectIntersectsRect(visibleArea, subview.visibleArea)) {
        const didSubviewHandle = subview.handleInteractionAndPropagateToSubviews(interaction, viewRefs) === true;

        if (didSubviewHandle) {
          return true;
        }
      }
    }

    const didSelfHandle = this.handleInteraction(interaction, viewRefs) === true;

    if (didSelfHandle) {
      return true;
    }

    return false;
  }
Handle an `interaction` and propagates it to all of this view's
`subviews`.

NOTE: Should not be overridden! Subclasses should override
`handleInteraction` instead.

@see handleInteraction
@protected