mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 08:15:24 +00:00
Fix some isolation errors when compiling with Swift 6.4. (#6148)
* Fix some isolation errors when compiling with Swift 6.4. * Update the Design Tokens dependency to include Sendable conformances.
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"originHash" : "792b23b07d60beec539354df3338b50d91cb38b47c8d2d9b3552f161843e0682",
|
||||
"originHash" : "f1791683f9f09408a7746ce0e163941b3ce7e83e84f1a73b2fecc2b5d2f2f4b6",
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "compound-design-tokens",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/element-hq/compound-design-tokens",
|
||||
"state" : {
|
||||
"revision" : "edc554adf951b0627ab68b197f7d86c786189e76",
|
||||
"version" : "10.2.4"
|
||||
"revision" : "86c15ef71798581d1e0cc39a7f99e598ad572419",
|
||||
"version" : "11.0.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
enum NetworkMonitorReachability {
|
||||
nonisolated enum NetworkMonitorReachability {
|
||||
case reachable
|
||||
case unreachable
|
||||
}
|
||||
|
||||
enum HomeserverReachability {
|
||||
nonisolated enum HomeserverReachability {
|
||||
/// The store is open and the homeserver is reachable.
|
||||
case reachable
|
||||
/// The homeserver can't be reached even though we're trying to sync (i.e. offline).
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct RoundedCornerShape: Shape {
|
||||
nonisolated struct RoundedCornerShape: Shape {
|
||||
let radius: CGFloat
|
||||
let corners: UIRectCorner
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ private struct ViewSizeKey: PreferenceKey {
|
||||
}
|
||||
}
|
||||
|
||||
private struct WaveformShape: Shape {
|
||||
private nonisolated struct WaveformShape: Shape {
|
||||
let lineWidth: CGFloat
|
||||
let linePadding: CGFloat
|
||||
let waveformData: [Float]
|
||||
|
||||
@@ -159,7 +159,7 @@ nonisolated struct ClientFactory: ClientFactoryProtocol {
|
||||
private func build(_ builder: ClientBuilder,
|
||||
for mode: BuildMode,
|
||||
appHooks: AppHooks) async throws -> ClientProtocol {
|
||||
var client: ClientProtocol = try await appHooks.clientFactoryHook.configure(builder, toRestore: mode.session).build()
|
||||
let client: ClientProtocol = try await appHooks.clientFactoryHook.configure(builder, toRestore: mode.session).build()
|
||||
|
||||
switch mode {
|
||||
case .authentication:
|
||||
|
||||
+1
-1
Submodule Enterprise updated: 30d2ad29a8...adca548afe
@@ -400,7 +400,7 @@
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
@@ -434,7 +434,7 @@
|
||||
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
|
||||
+3
-3
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"originHash" : "89c566dd1386002d6eb972c1cd428caf08db40d80235fb7bc4c296139b11e7c7",
|
||||
"originHash" : "7a6117b3894e217e5bc0fe7497b0b868c49d51f41e0d8be554dc766cb9566ec9",
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "compound-design-tokens",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/element-hq/compound-design-tokens",
|
||||
"state" : {
|
||||
"revision" : "edc554adf951b0627ab68b197f7d86c786189e76",
|
||||
"version" : "10.2.4"
|
||||
"revision" : "86c15ef71798581d1e0cc39a7f99e598ad572419",
|
||||
"version" : "11.0.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"originHash" : "89c566dd1386002d6eb972c1cd428caf08db40d80235fb7bc4c296139b11e7c7",
|
||||
"originHash" : "7a6117b3894e217e5bc0fe7497b0b868c49d51f41e0d8be554dc766cb9566ec9",
|
||||
"pins" : [
|
||||
{
|
||||
"identity" : "compound-design-tokens",
|
||||
"kind" : "remoteSourceControl",
|
||||
"location" : "https://github.com/element-hq/compound-design-tokens",
|
||||
"state" : {
|
||||
"revision" : "edc554adf951b0627ab68b197f7d86c786189e76",
|
||||
"version" : "10.2.4"
|
||||
"revision" : "86c15ef71798581d1e0cc39a7f99e598ad572419",
|
||||
"version" : "11.0.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -4,13 +4,13 @@ import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: "Compound",
|
||||
platforms: [.iOS(.v17)],
|
||||
platforms: [.iOS(.v18)],
|
||||
products: [
|
||||
.library(name: "Compound", targets: ["Compound"])
|
||||
],
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/element-hq/compound-design-tokens", exact: "10.2.4"),
|
||||
// .package(path: "../compound-design-tokens"),
|
||||
.package(url: "https://github.com/element-hq/compound-design-tokens", exact: "11.0.0"),
|
||||
// .package(path: "../../compound-design-tokens"),
|
||||
.package(url: "https://github.com/siteline/SwiftUI-Introspect", exact: "26.0.2"),
|
||||
.package(url: "https://github.com/SFSafeSymbols/SFSafeSymbols", exact: "7.0.0"),
|
||||
.package(url: "https://github.com/pointfreeco/swift-snapshot-testing", exact: "1.19.4")
|
||||
|
||||
@@ -7,11 +7,12 @@
|
||||
//
|
||||
|
||||
import CompoundDesignTokens
|
||||
import Synchronization
|
||||
import UIKit
|
||||
|
||||
public extension UIColor {
|
||||
/// The colours used by Element as defined in Compound Design Tokens.
|
||||
static let compound = CompoundUIColors()
|
||||
nonisolated static let compound = CompoundUIColors()
|
||||
}
|
||||
|
||||
/// The colours used by Element as defined in Compound Design Tokens.
|
||||
@@ -20,7 +21,7 @@ public extension UIColor {
|
||||
/// The object needs to be nonisolated.
|
||||
@Observable
|
||||
@dynamicMemberLookup
|
||||
public final nonisolated class CompoundUIColors {
|
||||
public final nonisolated class CompoundUIColors: Sendable {
|
||||
/// The base colour tokens that form the palette of available colours.
|
||||
///
|
||||
/// Normally these shouldn't be necessary, however in practice we may need
|
||||
@@ -29,16 +30,16 @@ public final nonisolated class CompoundUIColors {
|
||||
/// The main semantic tokens generated from the Style Dictionary.
|
||||
private let tokens = CompoundUIColorTokens()
|
||||
/// Runtime overrides for the `tokens` property.
|
||||
private var overrides = [KeyPath<CompoundUIColorTokens, UIColor>: UIColor]()
|
||||
private let overrides = Mutex<[KeyPath<CompoundUIColorTokens, UIColor> & Sendable: UIColor]>(.init())
|
||||
|
||||
public subscript(dynamicMember keyPath: KeyPath<CompoundUIColorTokens, UIColor>) -> UIColor {
|
||||
overrides[keyPath] ?? tokens[keyPath: keyPath]
|
||||
public subscript(dynamicMember keyPath: KeyPath<CompoundUIColorTokens, UIColor> & Sendable) -> UIColor {
|
||||
overrides.withLock { $0[keyPath] } ?? tokens[keyPath: keyPath]
|
||||
}
|
||||
|
||||
/// Customise the colour at the specified key path with the supplied colour.
|
||||
/// Supplying `nil` as the colour will remove any existing customisation.
|
||||
public func override(_ keyPath: KeyPath<CompoundUIColorTokens, UIColor>, with color: UIColor?) {
|
||||
overrides[keyPath] = color
|
||||
public func override(_ keyPath: KeyPath<CompoundUIColorTokens, UIColor> & Sendable, with color: UIColor?) {
|
||||
overrides.withLock { $0[keyPath] = color }
|
||||
}
|
||||
|
||||
// MARK: - Awaiting Semantic Tokens
|
||||
|
||||
Reference in New Issue
Block a user