Double Jump NoT Working

So i was working on my double jump system but it cant double jump i am a complete beginner and i dont know what causes this please help

My Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
public ParticleSystem dust;
public float runSpeed = 35f;
float horizontalMove = 0f;
public CharacterController2D controller2D;
public Animator animator;
private int extraJumps;
public int jumpValue;
bool jump = false;
bool crouch = false;
private bool grounded;
public Transform groundCheck;
public float checkRadius;
public LayerMask whatIsGround;

void Start()
{
    extraJumps = jumpValue;
}

void Update()
{
    horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;

    animator.SetFloat("Speed", Mathf.Abs(horizontalMove));

    if (grounded == true)
    {
        extraJumps = jumpValue;
    }
    

    if (Input.GetButtonDown("Jump") && extraJumps > 0)
    {
        jump = true;
        animator.SetBool("isJumping", true);
        extraJumps--;
    }else if (Input.GetButtonDown("Jump") && extraJumps == 0 && grounded == true)
    {
        jump = true;
        animator.SetBool("isJumping", true);
    }

    if (Input.GetButtonDown("Crouch"))
    {
        crouch = true;
    }else if (Input.GetButtonUp("Crouch"))
    {
        crouch = false;
    }
    if (horizontalMove == 35f)
    {
        CreateDust();
    }else if (horizontalMove == -35f)
    {
        CreateDust();
    }
    
     
    
}

public void OnLanding()
{
    animator.SetBool("isJumping", false);
}
public void OnCrouching(bool isCrouching)
{
    animator.SetBool("isCrouching", isCrouching);
}

void FixedUpdate()
{
    grounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);
    controller2D.Move(horizontalMove * Time.fixedDeltaTime, crouch, jump);
    if (grounded == true)
    {
        jump = false;
    }
}

void CreateDust()
{
    dust.Play();
}
void StopDust()
{
    dust.Stop();
}

}

Hi there,
(I’m not a pro)
I think your problem is the else if

     if (Input.GetButtonDown("Jump") && extraJumps > 0)
     {
         jump = true;
         animator.SetBool("isJumping", true);
         extraJumps--;
         if (Input.GetButtonDown("Jump") && extraJumps == 0 && grounded == true)
            {         
             jump = true;
             animator.SetBool("isJumping", true);
             }
     }

Nope that wouldnt work