Dialogue text repeating error

Hello, I have a problem with triggering my dialogue text.

Here I use an Empty Game Object called GameController to control my dialogue.

DialogueManagement.cs

using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class DialogManagement : MonoBehaviour
{
    [SerializeField] GameObject dialogBox;
    [SerializeField] Text dialogText;
    [SerializeField] private Button talkButton;

    [SerializeField] int letterPerSec;

    public static DialogManagement Instance { get; private set; }

    public event Action OnShowDialog;
    public event Action OnHideDialog;

    private void Awake()
    {
        Instance = this;
    }

    Dialogue dialogue;
    int currentLine = 0;
    bool isTyping;

    public IEnumerator ShowDialog(Dialogue dialogue)
    {
        yield return new WaitForEndOfFrame();
        OnShowDialog?.Invoke();

        this.dialogue = dialogue;
        dialogBox.SetActive(true);
        StartCoroutine(TypeDialog(dialogue.Lines[0]));
    }
    public void HandleUpdate() 
    { 
        if (talkButton != null && talkButton.onClick != null && talkButton.onClick.GetPersistentEventCount() > 0 && !isTyping)
        {
            ++currentLine;
            if (currentLine < dialogue.Lines.Count)
            {
                StartCoroutine(TypeDialog(dialogue.Lines[currentLine]));
            }
            else
            {
                dialogBox.SetActive(false);
                OnHideDialog?.Invoke();
            }
        Debug.Log(currentLine);
        }
    }

    public IEnumerator TypeDialog(string line)
    {
        isTyping = true;
        dialogText.text = "";
        foreach (var letter in line.ToCharArray())
        {
            dialogText.text += letter;
            yield return new WaitForSeconds(1f/letterPerSec);
        }
        isTyping = false;
    }
}

And the result make the dialogue text repeating the second word of my sentence. For example my NPC have a list of string stores 3 sentences: “Hello”, “Hi”, “Bye” but when the dialogue trigger it will be “Heeeeeeeeeeeeee…” “Hiiiiiiii…” “Byyyyyyyyyy…”

Anyone who know how to fix pls comment. Thank u.