import SwiftUI

@Observable class ApplicationData {
   var metaData: NSMetadataQuery!

   static let shared: ApplicationData = ApplicationData()
   private init() {
      metaData = NSMetadataQuery()
      metaData.predicate = NSPredicate(format: "%K == %@", NSMetadataItemFSNameKey, "myfile.dat")
      metaData.searchScopes = [NSMetadataQueryUbiquitousDocumentsScope]

      Task {
         let center = NotificationCenter.default
         let name = NSNotification.Name.NSMetadataQueryDidFinishGathering
         for await notification in center.notifications(named: name, object: nil) {
            if notification.name == name {
               await createFile()
            }
         }
      }
      metaData.start()
   }
}