portedProjects: portedProjects()

in packages/react/src/store/selectors/tableSelectors.ts [188:230]


          portedProjects: portedProjects(
            solutionDetails.data,
            solutionToSolutionDetails,
            solutionToPortingProjects[solutionDetails.data.solutionFilePath]
          ),
          totalProjects: solutionDetails.data.projects.length || 0,
          incompatiblePackages: nugetCompatibility == null ? undefined : nugetCompatibility[1] - nugetCompatibility[0],
          totalPackages: nugetCompatibility == null ? undefined : nugetCompatibility[1],
          incompatibleApis:
            nugetCompatibility == null || apiCompatibility == null
              ? undefined
              : apiCompatibility[1] - apiCompatibility[0],
          totalApis: nugetCompatibility == null || apiCompatibility == null ? undefined : apiCompatibility[1],
          buildErrors: buildErrors,
          portingActions: portingActions,
          failed: false
        } as DashboardTableData;
      })
      .filter((r): r is DashboardTableData => r != null);
  }
);

export const selectProjectTableData = createCachedSelector(
  selectApiAnalysis,
  selectNugetPackages,
  selectCurrentSolutionDetails,
  selectCurrentSolutionPath,
  selectPortingProjectsInSolution,
  selectTargetFramework,
  (apiAnalysis, nugetPackages, solutionDetails, solutionFilePath, portingProjects, targetFramework) => {
    if (!isLoaded(solutionDetails)) {
      return [];
    }
    return solutionDetails.data.projects.map<TableData>(project => {
      const projectToApiAnalysis = apiAnalysis[solutionFilePath];
      const apis = getCompatibleApi(
        solutionDetails,
        projectToApiAnalysis,
        project.projectFilePath,
        null,
        targetFramework
      );
      return {