pushdeer/ios/Prototype_version/PushDeer/View/DeviceView.swift
2021-12-23 00:19:55 +08:00

99 lines
3.4 KiB
Swift

//
// DeviceView.swift
// PushDeer
//
// Created by Easy on 2021/12/2.
//
import SwiftUI
import UIKit
import UserNotifications
import PromiseKit
// import Toast_Swift
struct DeviceView: View {
@EnvironmentObject private var store: AppState
@State private var showMessage: Bool = false
var body: some View {
NavigationView{
List{
do{
#if APPCLIP
let clip_string = " Clip"
#else
let clip_string = ""
#endif
Button("注册当前设备("+UIDevice.current.name+clip_string+")"){
// self.info = "clicked"
print("clicked")
print( AppDelegate.device_token )
//
// regDevices
firstly{() -> Promise<[DeviceItem]> in
#if APPCLIP
let is_clip = 1
#else
let is_clip = 0
#endif
print( "is_clip" , is_clip )
return store.regDevicePromise(name: UIDevice.current.name, device_id: AppDelegate.device_token, is_clip:is_clip)
}.done{ (items: [DeviceItem]) in
print( items[0] )
showMessage = true
}
.ensure{
print( "done" )
}
}.alert("设备注册完成", isPresented: $showMessage) {
Button("OK", role: .cancel) { }}
}
if( !store.devices.isEmpty ){
ForEach( store.devices ){ device in
let clip_text = device.is_clip == 1 ? " Clip" : " "
if( device.device_id == AppDelegate.device_token ){
Text(device.name+clip_text+"(已注册)")
}else{
Text(device.name+clip_text)
}
}.onDelete { (indexSet) in
// store.devices.remove(atOffsets: indexSet)
//
indexSet.forEach{
(i) in
firstly{() -> Promise<String> in
return store.rmDevicePromise(did: store.devices[i].id)
}.done{ (message:String) in
store.devices.remove(atOffsets: indexSet)
store.loadDevices()
// showMessage = true
}
.ensure{
print( "done" )
}
}
}
}
}
.navigationBarTitle("设备",displayMode: .inline)
.onAppear(perform: {
store.loadDevices()
})
}
}
}
struct DeviceView_Previews: PreviewProvider {
static var previews: some View {
DeviceView().environmentObject(AppState())
}
}