export function loadBoard()

in src/views/agile-board/board-actions.ts [132:167]


export function loadBoard(
  board: Board,
  query: string,
  refresh: boolean = false,
): ReduxAction {
  return async (dispatch: ReduxThunkDispatch) => {
    destroySSE();
    dispatch(updateAgileUserProfileLastVisitedAgile(board.id));
    dispatch(loadAgileWithStatus(board.id));
    const agileUserProfile = await dispatch(getAgileUserProfile());
    const cachedAgileLastSprint = getStorageState().agileLastSprint;
    let sprint: SprintBase | null;

    if (!refresh && board.currentSprint) {
      sprint = board.currentSprint;
    } else {
      sprint = getLastVisitedSprint(board.id, agileUserProfile?.visitedSprints) ||
        (cachedAgileLastSprint?.agile?.id === board.id
          ? cachedAgileLastSprint
          : null);
    }

    if (!sprint) {
      sprint = (board.sprints || []).slice(-1)[0];
      trackError('Cannot find last visited sprint');
      log.info('Agile Actions: Last visited sprint is undefined. Use the last one of the current board.');
    }
    if (sprint?.id) {
      log.info(`Agile Actions: Loading Sprint`);
      dispatch(loadSprint(board.id, sprint.id, query));
    } else {
      dispatch(receiveSprint(null));
      dispatch(setError(new Error(notFoundMessageData.title) as CustomError));
    }
  };
}