collapseMobileLevel3 method

void collapseMobileLevel3()

Collapses level3 on mobile, revealing level2. With MobileLevelCollapseMode.preserve (the default) level3 stays mounted and its state survives; with MobileLevelCollapseMode.discard this is equivalent to context.pop(level: 3).

Implementation

void collapseMobileLevel3() {
  final bloc = _maybeReadMultilevelBloc();
  final s = bloc?.state;
  if (bloc == null || s == null || !s.visibleLevels.isLevel3Visible) return;
  final navigator = _getMultilevelNavigatorFromContext(this);
  final featureConfig = PathUtils.getFeatureConfiguration(
    fullPath: s.path,
    featureConfigurations: navigator.allFeatures,
  );
  if (featureConfig == null) return;
  if (featureConfig.level3CollapseMode == MobileLevelCollapseMode.discard) {
    pop(level: 3);
    return;
  }
  bloc.add(ToggleMobileLevelCollapseEvent(PathUtils.extractFirstSegment(s.path), Level.three));
}