startNewPropagationStep(componentId, event, key, type) {
    this._position = this._componentList.getPositionById(componentId);
    this._componentId = componentId;

    if (this.isFirstPropagationStep()) {
      KeyEventCounter.incrementId();

      this._key = event.key;
      this._type = type;
    }

    if (event.repeat && Configuration.option('ignoreRepeatedEventsWhenKeyHeldDown')) {
      this.logger.debug(
        this.logger.keyEventPrefix(componentId),
        `Ignored repeated ${describeKeyEvent(event, key, KeyEventType.keydown)} event.`
      );

      this.ignoreEvent(event);

      return false;
    }

    return true;
  }
Begin a new propagation step, called as a before callback. i.e. the first thing
after an event has propagated to a new hot keys component
@param {ComponentId} componentId The id of the component that has just had the
       event propagate up to it
@param {SyntheticKeyboardEvent} event The actual KeyboardEvent that is propagating
@param {ReactKeyName} key The name of the key the event relates to
@param {KeyEventType} type The type of keyboard event
@returns {boolean} true if the event should be observed, otherwise false if it
       should be ignored.