Blinking two LEDs in and out of phase

I just tried to rewite it using millis()
here how I did it:

const byte led1 = 2;
const byte led2 = 8;

unsigned long previousMillis = 0;
void blink(unsigned long onTime, unsigned long phaseDifference,unsigned long rate)
{
  if(phaseDifference < onTime)
  {
     digitalWrite(led1, HIGH);
     if(millis() - previousMillis > phaseDifference)
     digitalWrite(led2, HIGH);
     if(millis() > (onTime - phaseDifference))
     previousMillis =  millis();
     digitalWrite(led1, LOW);
     if(millis() - previousMillis > phaseDifference)
     digitalWrite(led2, LOW);
     if(millis()- previousMillis > rate - (onTime + phaseDifference))
     {
        previousMillis = millis();
     }
  }
   else
  {
    digitalWrite(led1, HIGH);
    if(millis() > previousMillis +onTime)
    {
      digitalWrite(led1, LOW);
      previousMillis = millis();
    }
    if(millis() - previousMillis > (phaseDifference - onTime))
    {
      digitalWrite(led2, HIGH);
      previousMillis = millis();
    }
      if(millis() > previousMillis +onTime)
      {
       digitalWrite(led2, LOW);
      }
      if(millis() - previousMillis > rate - (onTime + phaseDifference))
      {
        previousMillis = millis();
      }

 
    }
}

void setup() {
  pinMode(led1,OUTPUT);
    pinMode(led2,OUTPUT);
}

void loop() {
blink(50,0,400);

}

not working at all.
I probably made a mistake somewhere when changing prevoiusMillis all the time.
edit: I forgot to setup the pins OUTPUTs but that was not my mistake.
now the two LED are constantly ON.

make sense.