Player Dash with Double Tap Arrow Keys

My player can dash when the player presses left shift, but I can’t get the double tap on the left and right arrow keys to work

Here’s the code (Brought it down to the dash elements to make it easier) Thanks

 public float dashDistance = 10f;
   bool isDashing;
   float doubleTapTime;
   KeyCode lastKeyCode;
   float mx;

   [Header("Dashing")]
   [SerializeField] private float m_JumpForce = 400f;
   public bool canDash = true;
   public float dashingTime;
   public float dashSpeed;
   public float dashJumpIncrease;
   public float timeBtwDashes;

void FixedUpdate()
    {

        //  if(canMove)
        //Dashing left
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
if (doubleTapTime > Time.time && lastKeyCode == KeyCode.LeftArrow){
    DashAbility();
}
} else {
        doubleTapTime = Time.time + 0.3f;
    }
    lastKeyCode = KeyCode.LeftArrow;

    //Dashing right
if (Input.GetKeyDown(KeyCode.RightArrow))
{
if (doubleTapTime > Time.time && lastKeyCode == KeyCode.RightArrow){
    DashAbility();
}
} else {
        doubleTapTime = Time.time + 0.3f;
    }
    lastKeyCode = KeyCode.RightArrow;
        {
            if (Input.GetKeyDown(KeyCode.LeftShift))
            {
                DashAbility();
            }
        }

void DashAbility()
{
    if(canDash)
    {
        StartCoroutine(Dash());
    }
}
IEnumerator Dash()
{
    canDash = false;
    runSpeed = dashSpeed;
    m_JumpForce = dashJumpIncrease;
    yield return new WaitForSeconds(dashingTime);
    runSpeed = 50f;
    m_JumpForce = 800f;
    yield return new WaitForSeconds(timeBtwDashes);
    canDash = true;
}

Figured it out, here is the code that worked for me:

public class TapDetector : MonoBehaviour {
     public bool singleTap = false;
     public bool doubleTap = false;
     bool tapping = false;
     float tapTime = 0;
     float duration = .4f;
    
void Start()
     {
        
     }
     void Update()
     {
         if (Input.GetMouseButtonDown(0))
         {
             if (tapping)
             {
                 doubleTap = true;
                 Debug.Log("DoubleTap");
                 tapping = false;
             }
             else
             {
                 tapping = true;
                 tapTime = duration;
                
             }
         }
         if (tapping)
         {
             tapTime = tapTime - Time.deltaTime;
             if (tapTime <= 0)
             {
                 tapping = false;
                 singleTap = true;
                 Debug.Log("SingleTap");
             }
         }
     }
     void LateUpdate()
     {
         if (doubleTap) doubleTap = false;
         if (singleTap) singleTap = false;
     }
    
}