feat: Resolving concurrency warnings

This commit is contained in:
2024-06-11 10:54:19 -04:00
parent bf2e65fb8f
commit 0e593708bb
6 changed files with 39 additions and 46 deletions

View File

@@ -93,7 +93,9 @@ extension FlaggedEquipmentMeasurementStyle where Self == GridFlaggedEquipmentMea
//}
extension EnvironmentValues {
@Entry var flaggedEquipmentMeasurementStyle = AnyFlaggedEquipmentMeasurementStyle(.grid)
@Entry var flaggedEquipmentMeasurementStyle = MainActor.assumeIsolated {
AnyFlaggedEquipmentMeasurementStyle(.grid)
}
}
extension View {

View File

@@ -23,7 +23,9 @@ public struct FlaggedMessageLabel: View {
}
private struct FlaggedMessageLabelStyleKey: EnvironmentKey {
static let defaultValue = AnyTextLabelStyle(style: .font(.caption))
static let defaultValue = MainActor.assumeIsolated {
AnyTextLabelStyle(style: .font(.caption))
}
}
extension EnvironmentValues {

View File

@@ -25,25 +25,26 @@ public struct FlaggedStatusLabel: View {
@MainActor
@preconcurrency
public protocol FlaggedStatusLabelStyle: Sendable {
public protocol FlaggedStatusLabelStyle {
associatedtype Body: View
typealias Configuration = FlaggedStatusLabelStyleConfiguration
@ViewBuilder
func makeBody(configuration: Self.Configuration) -> Self.Body
}
public struct FlaggedStatusLabelStyleConfiguration : Sendable{
public struct FlaggedStatusLabelStyleConfiguration {
public let status: Flagged.CheckResult.Status
}
@MainActor
public struct AnyFlaggedStatusLabelStyle: FlaggedStatusLabelStyle, Sendable {
private let _makeBody: @Sendable (Configuration) -> AnyView
public struct AnyFlaggedStatusLabelStyle: FlaggedStatusLabelStyle {
private let _makeBody: (Configuration) -> AnyView
internal init(makeBody: @escaping @Sendable (Configuration) -> AnyView) {
internal init(makeBody: @escaping (Configuration) -> AnyView) {
self._makeBody = makeBody
}
@MainActor
public init<Style: FlaggedStatusLabelStyle>(_ style: Style) {
self.init { configuration in
AnyView(style.makeBody(configuration: configuration))
@@ -59,7 +60,8 @@ public struct FlaggedStatusTextLabelStyle: FlaggedStatusLabelStyle {
let textLabelStyle: AnyTextLabelStyle?
@MainActor public func makeBody(configuration: Configuration) -> some View {
@MainActor
public func makeBody(configuration: Configuration) -> some View {
TextLabel(configuration.status.title)
.textLabelStyle(
textLabelStyle

View File

@@ -180,7 +180,9 @@ extension FlaggedViewStyle where Self == FlaggedGridRowStyle {
}
private struct FlaggedViewStyleKey: EnvironmentKey {
static let defaultValue = AnyFlaggedViewStyle(style: DefaultFlagViewStyle())
static let defaultValue = MainActor.assumeIsolated {
AnyFlaggedViewStyle(style: DefaultFlagViewStyle())
}
}
extension EnvironmentValues {