get tasks()

in src/components/application/details/controls/tasks/index.js [35:64]


  get tasks() {
    const {
      from,
      jobId,
      mode,
      workflow,
    } = this.props;
    if (workflow?.metadata?.loaded && workflow.metadata.value.calls) {
      const {calls} = workflow.metadata.value;
      return Object.keys(calls).map(key => ({
        name: key,
        jobs: calls[key],
      })).reduce((result, current) => {
        result.push(...current.jobs.map((job, index, arr) => ({
          jobId: arr.length === 1 ? current.name : `${current.name}.${index}`,
          rawJobId: arr.length === 1 ? current.name : `${current.name}.${index}`,
          ...job,
          name: current.name,
        })));
        return result;
      }, [])
        .sort((a, b) => dateFns.compareAsc(new Date(a.start), new Date(b.start)))
        .map((task, index, array) => ({
          ...task,
          selected: taskIsSelectedFn({jobId})(task, index, array),
          url: `/run/${workflow.id}/${mode}/${getTaskJobId(task)}${from ? `?from=${from}` : ''}`,
        }));
    }
    return [];
  }