opening a door with animation

hello, I have been on this problem much of the day. and searched for answers and thought I had one. I did, but to a degree. The problem I’m having is when I trigger a door to open it, about 50% of the time it will close back. the same for the closing animation, except it will reopen. does anyone have a solution. The code that I found was in javaScript, but I converted it to C#. The commented code below is what I was doing earlier, until I found that code… thanks

using System.Collections;

public class OpeningClosingAnim : MonoBehaviour 
{
	public GameObject door;
	
	public bool haveKey;

	//public bool opened = false;
	
	private bool HasTriggerBeenUsed = false;
	private bool setTrigger = false;
	

	void OnTriggerStay()
	{
		if(	haveKey && Input.GetKeyUp(KeyCode.E) && !HasTriggerBeenUsed)
		{
			door.animation.Play("OpeningDoor02");	
			setTrigger = true;
			
		}
		
		else if(haveKey &&  Input.GetKeyUp(KeyCode.E) && HasTriggerBeenUsed)
		{
			door.animation.Play("ClosingDoor03");
			setTrigger = true;
			
		}
		if (setTrigger) 
		{ 
			HasTriggerBeenUsed = !HasTriggerBeenUsed; 
		}
		
	}
	
}





//	// Use this for initialization
//	void Start () 
//	{
//		//opened = true;
//
//	}
//	
//	// Update is called once per frame
//	void Update () 
//	{
//		// add raycast once door works as expected
//		OpeningAndClosingDoor();
//		
//		
//		
//	
//	}
//	
//	
//	
//	void OpeningAndClosingDoor()
//	{
//		if(opened == false && haveKey && Input.GetKeyDown(KeyCode.E))
//		{
//			
//			
//			
//			animation.Play("OpeningDoor02");
//			opened = true;
//				
//			   if(opened == true && haveKey &&  Input.GetKeyDown(KeyCode.E))
//				{
//					animation.Play("ClosingDoor03");	
//			
//				}
//			else if(!haveKey)
//			{
//				opened = false;
//				// add Gui text that player needs key
//			}
//			
//		}
//		
//
//		
//		
//	}

Check this : simple door script