mirror of
https://github.com/easychen/pushdeer.git
synced 2025-04-30 16:29:51 +08:00
修改配置为pushdeer官方配置(包名,团队标识,api域名); 补充新添加的文字的英文翻译 (国际化); 设备和key是空列表时,加一个提示,让用户知道可以新增; 尝试解决列表删除项后UI偶尔没刷新的bug; 首次打开提示注册设备; 首次自动生成一个 key; 消息列表放到第一个位置; 推送测试时自动生成一个key; 后台进入前台后, 刷新本地消息列表; 键盘上方添加完成按钮, 用于收键盘; 发送推送测试后 自动收键盘; 及时清角标, 拯救强迫症; 为了保持一致, 设置页也改为可滑动; 添加SelfHosted配置, 可以直接一套代码跑出两种版本; 支持服务自建; 添加Env统一管理环境变量.
64 lines
1.4 KiB
Swift
64 lines
1.4 KiB
Swift
//
|
|
// LoginView.swift
|
|
// PushDeer
|
|
//
|
|
// Created by HEXT on 2021/12/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
import AuthenticationServices
|
|
|
|
/// 登录界面
|
|
struct LoginView: View {
|
|
|
|
@EnvironmentObject private var store: AppState
|
|
@State private var showLoading = false
|
|
|
|
var body: some View {
|
|
VStack{
|
|
Spacer()
|
|
Image("logo.with.space")
|
|
.resizable()
|
|
.scaledToFit()
|
|
if Env.isSelfHosted {
|
|
Button("重置API endpoint") {
|
|
store.api_endpoint = ""
|
|
}
|
|
}
|
|
Spacer()
|
|
if showLoading {
|
|
ProgressView()
|
|
.scaleEffect(1.5)
|
|
.frame(height: 64)
|
|
} else {
|
|
AppleSignInButton(
|
|
onRequest: { request in
|
|
request.requestedScopes = [.fullName, .email]
|
|
},
|
|
onCompletion: { result in
|
|
do {
|
|
showLoading = true
|
|
store.token = try await store.appleIdLogin(result).token
|
|
// 获取成功去主页
|
|
} catch {
|
|
showLoading = false
|
|
HToast.showError(error.localizedDescription)
|
|
}
|
|
}
|
|
)
|
|
.overlay(RoundedRectangle(cornerRadius: 6).stroke(Color.white))
|
|
.frame(maxWidth: 375, minHeight: 64, maxHeight: 64)
|
|
.padding()
|
|
}
|
|
Spacer()
|
|
}
|
|
.padding()
|
|
}
|
|
}
|
|
|
|
struct LoginView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
LoginView()
|
|
}
|
|
}
|