blinking diode with on/off button switch

Hi!
I'm trying to make a diode blink continuously when i press the button, and the turn off when i press the same button again.

Right now the diode only blinks once and turns off.
I think i need to make my "else" statement loop until i press the button again, but i don't know how.

here is my code:

const int button = 2;  
const int led =  13;     

int ledState = HIGH;
int buttonCurrent;
int buttonPrevious = LOW;

void setup() {

  pinMode(led, OUTPUT);

  pinMode(button, INPUT_PULLUP);
}

void loop() {
buttonCurrent = digitalRead(button);

  if (buttonCurrent == HIGH && buttonPrevious == LOW) 
  {
    if(ledState == HIGH)
    {
      ledState = LOW;
      digitalWrite(led, LOW);
    }
   else 
    {
      ledState = HIGH;
    digitalWrite(led, HIGH);
    delay(400);
    digitalWrite(led, LOW);
    delay(400);
  }
}
buttonPrevious = buttonCurrent;
}

Detect the change of state of the input from LOW to HIGH and change the state of a boolean variable true, false, true, false and so on each time the button becomes pressed

Separately in loop() test the value of the boolean and if it is true and the required blink period has elapsed change the state of the LED and save the time of the change.

Use millis() for timing the LED blinking as in the BlinkWithoutDelay example. For more detail see Using millis() for timing. A beginners guide

If you’re making a diode ‘light up’, you have bigger problems than software !
I suspect you’re asking about an LED (light emitting di...) !