Skip to content
Snippets Groups Projects
pre-ovulatory.js 727 B
Newer Older
import { LocalDate } from "js-joda"

Julia Friesel's avatar
Julia Friesel committed
export default function(cycle) {
  const startDate = LocalDate.parse(cycle[0].date)
  const fiveDayEndDate = startDate.plusDays(4).toString()
  const fiveDayRuleDays = cycle.slice(0, 5).filter(d => d.date <= fiveDayEndDate)
Julia Friesel's avatar
Julia Friesel committed
  const preOvulatoryDays = getDaysUntilFertileMucus(fiveDayRuleDays)
  return {
    cycleDays: preOvulatoryDays,
    start: {
      date: preOvulatoryDays[0].date
    },
    end: {
Julia Friesel's avatar
Julia Friesel committed
    }
  }
}

function getDaysUntilFertileMucus(days) {
  const firstFertileMucusDayIndex = days.findIndex(day => day.mucus && day.mucus.value > 1)
  if (firstFertileMucusDayIndex > -1) {
    return days.slice(0, firstFertileMucusDayIndex)
  }
  return days
}