SwiftUI modal with textField

Here is my take on a Custom Alert with TextField.

import SwiftUI

struct CustomAlert: View {
    @Binding var textEntered: String
    @Binding var showingAlert: Bool
    
    var body: some View {
        ZStack {
            RoundedRectangle(cornerRadius: 20)
                .fill(Color.white)
            VStack {
                Text("Custom Alert")
                    .font(.title)
                    .foregroundColor(.black)
                
                Divider()
                
                TextField("Enter text", text: $textEntered)
                    .padding(5)
                    .background(Color.gray.opacity(0.2))
                    .foregroundColor(.black)
                    .padding(.horizontal, 20)
                
                Divider()
                
                HStack {
                    Button("Dismiss") {
                        self.showingAlert.toggle()
                    }
                }
                .padding(30)
                .padding(.horizontal, 40)
            }
        }
        .frame(width: 300, height: 200)
    }
}

struct ContentView: View {
    @State private var textEntered = ""
    @State private var showingAlert = false
    
    var body: some View {
        NavigationView {
            ZStack {
                Color.red.opacity(0.3)
                    .edgesIgnoringSafeArea(.all)
                
                VStack(spacing: 20) {
                    Button("Show Alert") {
                        self.showingAlert.toggle()
                        self.textEntered = ""
                    }
                    Text("\(textEntered)")
                }
                
                CustomAlert(textEntered: $textEntered, showingAlert: $showingAlert)
                    .opacity(showingAlert ? 1 : 0)
                
            }
        .navigationBarTitle("Custom Alert")
            .navigationBarItems(leading:
                Button(action: {
                    self.showingAlert.toggle()
                }) {
                    Image(systemName: "play.fill")
            })
        }
        
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}