PROJECT 10 small modification!

Hi guys. I just finished project 10 (gave up on my own code and pretty much copied whatever was in the book :grin:).

I want to make a small modification:

When I hold the motorSwitch button down, I want to wait 2 seconds before the motor starts spinning. However, when I want to shut it down, I just press the switch.

Can someone please explain how I can do this in a smart way (all of my ideas were terrible)?

The code so far:

int enablePin = 9;
int OnOffMotorSwitch = 5;
int directionSwitch = 4;

int OnOffMotorState = 0;
int directionState = 0;

int previousMotorState = 0;
int previousDirectionState = 0;

int motorEnable = 0;
int directionEnable = 0;

void setup(){
pinMode(enablePin, OUTPUT);
pinMode(OnOffMotorSwitch, INPUT);
pinMode(directionSwitch, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(6, OUTPUT);

digitalWrite(enablePin, LOW);

Serial.begin(9600);

}


void loop(){
  int motorDC = analogRead(A0) / 4;
  int OnOffMotorState = digitalRead(OnOffMotorSwitch);
  int directionState = digitalRead(directionSwitch);

 if(OnOffMotorState != previousMotorState){
   if(OnOffMotorState == HIGH){
     motorEnable = !motorEnable;
     }
   }
  
 if(directionState != previousDirectionState){
  if(directionState == HIGH){
   directionEnable = !directionEnable;
  } 
 }
 
 if(motorEnable == true){
  analogWrite(enablePin, motorDC); 
 }
 else{
   analogWrite(enablePin, 0);
 }
 
 
 if(directionEnable == true){
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW); 
 }
 else{
  digitalWrite(2, LOW);
  digitalWrite(3, HIGH);
 }
 

  
  previousMotorState = OnOffMotorState;
  previousDirectionState = directionState;
  
}

Thanks in advance.