// // XuXuCheckApp.swift // XuXuCheck // // Created by henseycai on 2025/5/26. // //some references //https://www.hackingwithswift.com/quick-start/swiftui/how-to-run-some-code-when-state-changes-using-onchange //https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:) //https://github.com/yannickl/DynamicColor/tree/master import SwiftUI @main struct XuXuCheckApp: App { @State var status = Status() @State var loginViewModel = LoginViewModel() @State var cameraViewModel = CameraViewModel() //https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro //https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app @State var loginStatus = LoginStatus() @State var webViewModel = WebViewModel() init(){ loginStatus.isLogin = Storage.shared.isLogin getSelfData() } func getSelfData(){ if(loginStatus.isLogin == false){ return } APIService.instance.getSelf(completion: {(model,error) in if let error = error{ debugPrint(error) return } //Storage.Print() if let model = model { Storage.shared.userid = model.data?.userinfo?.user_id ?? 0 //Storage.shared.usertoken = model.data?.usertoken ?? "" if let usertoken = model.data?.usertoken { Storage.shared.usertoken = usertoken } Storage.shared.mobile = model.data?.userinfo?.user_mobile ?? "" Storage.shared.email = model.data?.userinfo?.user_email ?? "" Storage.shared.username = model.data?.userinfo?.user_nickname ?? "" Storage.shared.useravatar = model.data?.userinfo?.user_avatar ?? "" Storage.shared.member_id = model.data?.defaultMember?.member_id ?? 0 Storage.shared.member_name = model.data?.defaultMember?.member_name ?? "" Storage.shared.member_avatar = model.data?.defaultMember?.member_avatar ?? "" } }) } var body: some Scene { WindowGroup { ContentView() .environment(status) .environment(loginViewModel) .environment(cameraViewModel) .environment(loginStatus) .environment(webViewModel) } } }