import SwiftUI

struct ContentView: View {
   @State private var appData = ApplicationData.shared
   @State private var inputMessage: String = ""
   @State private var isButtonDisabled: Bool = false

   var body: some View {
      VStack(spacing: 12) {
         HStack {
            Text("Message:")
            TextField("Insert Message", text: $inputMessage)
               .textFieldStyle(.roundedBorder)
         }
         HStack {
            Spacer()
            Button("Post Notification") {
               Task {
                  let message = inputMessage.trimmingCharacters(in: .whitespaces)
                  if !message.isEmpty {
                     inputMessage = ""
                     await appData.postNotification(message: message)
                  }
               }
            }.buttonStyle(.borderedProminent)
            .disabled(isButtonDisabled)
         }
         Spacer()
      }.padding()
      .task {
         let authorization = await appData.askAuthorization()
         isButtonDisabled = !authorization
      }
   }
}