Debounce + StateChange [SOLVED]

Try this and note the differences

void loop() {
  reading = digitalRead(buttonPin);
 
  if (reading != preState) {
     lastDebounceTime = millis();
     preState = reading; 
     }
  
  if ((millis() - lastDebounceTime) > debounceDelay) { 
      Serial.println("delay finished");

      if(reading == LOW){
      digitalWrite(ledPin, HIGH);
      delay(500);
      digitalWrite(ledPin, LOW);
      delay(500);
      digitalWrite(ledPin, HIGH);
      delay(500);
      digitalWrite(ledPin, LOW);
    }
  }
}

Edit, forgot to change currstate to prestate