import Foundation
import Capacitor

/**
 * Please read the Capacitor iOS Plugin Development Guide
 * here: https://capacitor.ionicframework.com/docs/plugins/ios
 */
@objc(ShareToInstagramStories)
public class ShareToInstagramStories: CAPPlugin {
    
    @objc func echo(_ call: CAPPluginCall) {
        let value = call.getString("value") ?? ""
        call.success([
            "value": value
        ])
    }

    @objc func shareToInstagram(_ call: CAPPluginCall){
        let url = URL(string: "instagram-stories://share")!
        guard let imageBase64String = call.getString("myBase64Img") else {
          call.reject("Must provide an base64 image")
          return
        }
        let imageData = Data.init(base64Encoded: imageBase64String, options: .init(rawValue: 0))
        let image = UIImage(data: imageData!)
        let success = "This is a success !"
        let error = "This is an error #ehhhh !"
        
        if UIApplication.shared.canOpenURL(url){

            let backgroundData = image!.pngData()!
            let pasteBoardItems = [
                                    ["com.instagram.sharedSticker.backgroundImage" : backgroundData]
                                  ]

            if #available(iOS 10.0, *) {

                UIPasteboard.general.setItems(pasteBoardItems, options: [.expirationDate: Date().addingTimeInterval(60 * 5)])
            } else {
                UIPasteboard.general.items = pasteBoardItems
            }
            UIApplication.shared.openURL(url)
            call.resolve([
                "value": success
            ])
        } else {
            call.reject(error)
        }
    }
}
