mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-13 06:35:06 +00:00
26 lines
812 B
Swift
26 lines
812 B
Swift
import SwiftUI
|
|
|
|
/// 稳定容器持有详情计时会话,即使暂时没有结果也能接收后续完成事件。
|
|
struct DetailFeedback<Result: DetailFeedbackResult, Content: View>: View {
|
|
let completion: Result?
|
|
@ViewBuilder let content: (Result) -> Content
|
|
@State private var feedback: DetailFeedbackState<Result>
|
|
|
|
init(completion: Result?, @ViewBuilder content: @escaping (Result) -> Content) {
|
|
self.completion = completion
|
|
self.content = content
|
|
self._feedback = State(initialValue: DetailFeedbackState<Result>())
|
|
}
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading, spacing: 0) {
|
|
if let result = feedback.completion, result.id == completion?.id {
|
|
content(result)
|
|
}
|
|
}
|
|
.task(id: completion?.id) {
|
|
await feedback.present(completion)
|
|
}
|
|
}
|
|
}
|