private findPrev()

in fuse-ui-fabric/tree/treeView.tsx [361:384]


  private findPrev(cur: ITreeNodeView): ITreeNodeView {
    const parent = cur.parent;
    if (!parent) {
      return null;
    }

    const children = parent.children;
    let iter = children.next();
    let prev: ITreeNodeView = parent;

    while (!iter.done) {
      if (iter.value === cur) {
        if (prev.expanded && prev !== parent) {
          return last(prev.children) || prev;
        }

        return prev;
      }
      prev = iter.value;
      iter = children.next();
    }

    return null;
  }