renderBoard()

in src/views/agile-board/agile-board.tsx [609:670]


  renderBoard() {
    const {sprint, isLoadingMore, error, agile} = this.props;
    const {zoomedIn} = this.state;

    const renderAgileSelector = () => (
      <View style={styles.agileNoSprint}>{this.renderAgileSelector()}</View>
    );

    if (agile?.status?.errors?.length || error) {
      return renderAgileSelector();
    }

    if (!sprint) {
      if (error && error.noAgiles) {
        return null;
      }

      return (
        <View>
          {renderAgileSelector()}
          <SkeletonAgile />
        </View>
      );
    }

    return (
      <DragContainer onDragStart={this.onDragStart} onDragEnd={this.onDragEnd}>
        <BoardScroller
          columns={sprint?.board?.columns}
          snap={zoomedIn}
          refreshControl={this._renderRefreshControl()}
          horizontalScrollProps={{
            contentContainerStyle: {
              display: 'flex',
              flexDirection: 'column',
              width: zoomedIn ? this._getScrollableWidth() : '100%',
            },
            onScroll: this.syncHeaderPosition,
          }}
          verticalScrollProps={{
            onScroll: this.onVerticalScroll,
            onContentSizeChange: this.onContentSizeChange,
            contentContainerStyle: {
              minHeight: '100%',
            },
          }}
          agileSelector={this.renderAgileSelector()}
          sprintSelector={this.renderSprintSelector()}
          boardHeader={this.renderBoardHeader()}
          boardSearch={this.renderSearchPanelPreview()}
        >
          {this.renderSprint()}
          {isLoadingMore && (
            <ActivityIndicator
              color={styles.link.color}
              style={styles.loadingMoreIndicator}
            />
          )}
        </BoardScroller>
      </DragContainer>
    );
  }