Untitled

mail@pastecode.io avatarunknown
javascript
a month ago
1.6 kB
1
Indexable
Never
 const setDefaultValues = () => {
    // We need to filter 'paused' and 'out_of_process' stages
    let filteredStages = selectedJob.stages.filter(stage => (stage.type !== 'paused') && (stage.type !== 'out_of_process'));

    const candidateJob = props.candidate.jobs.find((job) => job.name === selectedJob.name);
    const fromStage = selectedJob.stages.find((stage) => stage.name === candidateJob.previous_stage_name);

    let currentStageIndex = filteredStages.findIndex((jobStages) => jobStages.name === props.candidateJob.stage_name);

    if (currentStageIndex !== -1) {

      let previousStage = filteredStages[currentStageIndex - 1];
      let hasSubStages = props.stage.sub_stages.length > 0;
      let previousSubStage = null;
      if (hasSubStages) {
        let currentSubStageIndex = props.stage.sub_stages.findIndex((subStages) => subStages.name === props.candidateJob.sub_stage_name);
        previousSubStage = props.stage.sub_stages[currentSubStageIndex - 1];
      }

      // If previous SubStage exists, then Stage is the same
      if (previousSubStage) {
        setFinalStage(props.stage.name);
        setFinalSubStage(previousSubStage.name);
      } else {
        // If previous stage exists
        if (previousStage) {
          setFinalStage(fromStage.name);
          // and have SubStages
          if (previousStage.sub_stages.length > 0) {
            setFinalSubStage(previousStage.sub_stages[previousStage.sub_stages.length - 1].name);
          } else {
            setFinalSubStage(null);
          }
        }
      }
      setPreviousStage(previousStage);
    }
  }