subTreeMovedDown method

List<AppPage> subTreeMovedDown(
  1. AppRoute route, {
  2. bool reset = false,
  3. bool pop = false,
})

Implementation

List<AppPage> subTreeMovedDown(
  AppRoute route, {
  bool reset = false,
  bool pop = false,
}) {
  final subTree = getSubTrees().find(route);
  if (subTree != null && subTree.endPosition <= length - 1) {
    final newRoutes = List.of(this)
      ..removeRange(subTree.startPosition, subTree.endPosition + 1);
    if (reset) {
      subTree.reset();
    } else if (pop) {
      subTree.popChild();
    }
    return newRoutes..addAll(subTree.toPagesView());
  } else {
    return this;
  }
}