mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-10-31 08:15:24 +00:00
remove iOS 16 support (#3443)
* remove iOS 16 support * remove iOS 16 support * test updates * added more delay * revert * adding waiting time on the CI
This commit is contained in:
@@ -7458,9 +7458,8 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 17.6;
|
||||
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)";
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.3;
|
||||
MARKETING_VERSION = 1.9.4;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
@@ -7535,9 +7534,8 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 17.6;
|
||||
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)";
|
||||
MACOSX_DEPLOYMENT_TARGET = 13.3;
|
||||
MARKETING_VERSION = 1.9.4;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
|
||||
@@ -575,7 +575,7 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
|
||||
// The user will log out, clear any existing notifications and unregister from receving new ones
|
||||
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
|
||||
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
|
||||
UIApplication.shared.applicationIconBadgeNumber = 0
|
||||
UNUserNotificationCenter.current().setBadgeCount(0)
|
||||
|
||||
unregisterForRemoteNotifications()
|
||||
|
||||
|
||||
@@ -452,15 +452,15 @@ private struct NavigationSplitCoordinatorView: View {
|
||||
}
|
||||
// Handle `horizontalSizeClass` changes breaking the navigation bar
|
||||
// https://github.com/element-hq/element-x-ios/issues/617
|
||||
.onChange(of: horizontalSizeClass) { value in
|
||||
.onChange(of: horizontalSizeClass) { _, newValue in
|
||||
guard scenePhase != .background else {
|
||||
return
|
||||
}
|
||||
|
||||
isInSplitMode = value == .regular
|
||||
isInSplitMode = newValue == .regular
|
||||
}
|
||||
.onChange(of: scenePhase) { value in
|
||||
guard value == .active else {
|
||||
.onChange(of: scenePhase) { _, newValue in
|
||||
guard newValue == .active else {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ struct PillView: View {
|
||||
.padding(.trailing, 6)
|
||||
.padding(.vertical, 1)
|
||||
.background { Capsule().foregroundColor(backgroundColor) }
|
||||
.onChange(of: context.viewState.displayText) { _ in
|
||||
.onChange(of: context.viewState.displayText) {
|
||||
didChangeText()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ struct IsSearchingModifier: ViewModifier {
|
||||
|
||||
func body(content: Content) -> some View {
|
||||
content
|
||||
.onChange(of: isSearchingEnv) { isSearching = $0 }
|
||||
.onChange(of: isSearchingEnv) { isSearching = $1 }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ struct AppLockScreen: View {
|
||||
pinInputField
|
||||
.padding(.bottom, 16)
|
||||
.offset(x: pinInputFieldOffset)
|
||||
.onChange(of: context.viewState.numberOfPINAttempts) { newValue in
|
||||
.onChange(of: context.viewState.numberOfPINAttempts) { _, newValue in
|
||||
guard newValue > 0 else { return } // Reset without animation in Previews.
|
||||
accessibilitySubtitleFocus = true
|
||||
Task { await animatePINFailure() }
|
||||
|
||||
@@ -20,7 +20,7 @@ struct PINTextField: View {
|
||||
.textFieldStyle(PINTextFieldStyle(pinCode: pinCode, isSecure: isSecure, maxLength: maxLength, size: size))
|
||||
.keyboardType(.numberPad)
|
||||
.accessibilityIdentifier(A11yIdentifiers.appLockSetupPINScreen.textField)
|
||||
.onChange(of: pinCode) { newValue in
|
||||
.onChange(of: pinCode) { _, newValue in
|
||||
let sanitized = sanitize(newValue)
|
||||
if sanitized != newValue {
|
||||
MXLog.warning("PIN code input sanitized.")
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ struct AppLockSetupSettingsScreen: View {
|
||||
Section {
|
||||
ListRow(label: .plain(title: context.viewState.enableBiometricsTitle),
|
||||
kind: .toggle($context.enableBiometrics))
|
||||
.onChange(of: context.enableBiometrics) { _ in
|
||||
.onChange(of: context.enableBiometrics) {
|
||||
context.send(viewAction: .enableBiometricsChanged)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,9 @@ struct LoginScreen: View {
|
||||
.textContentType(.username)
|
||||
.autocapitalization(.none)
|
||||
.submitLabel(.next)
|
||||
.onChange(of: isUsernameFocused, perform: usernameFocusChanged)
|
||||
.onChange(of: isUsernameFocused) { _, newValue in
|
||||
usernameFocusChanged(isFocussed: newValue)
|
||||
}
|
||||
.onSubmit { isPasswordFocused = true }
|
||||
.padding(.bottom, 20)
|
||||
|
||||
@@ -135,19 +137,19 @@ struct LoginScreen_Previews: PreviewProvider, TestablePreview {
|
||||
LoginScreen(context: viewModel.context)
|
||||
}
|
||||
.previewDisplayName("matrix.org")
|
||||
.snapshotPreferences(delay: 0.1)
|
||||
.snapshotPreferences(delay: 1)
|
||||
|
||||
NavigationStack {
|
||||
LoginScreen(context: credentialsViewModel.context)
|
||||
}
|
||||
.previewDisplayName("Credentials Entered")
|
||||
.snapshotPreferences(delay: 0.1)
|
||||
.snapshotPreferences(delay: 1)
|
||||
|
||||
NavigationStack {
|
||||
LoginScreen(context: unconfiguredViewModel.context)
|
||||
}
|
||||
.previewDisplayName("Unsupported")
|
||||
.snapshotPreferences(delay: 0.1)
|
||||
.snapshotPreferences(delay: 1)
|
||||
}
|
||||
|
||||
static func makeViewModel(homeserverAddress: String = "matrix.org", withCredentials: Bool = false) -> LoginScreenViewModel {
|
||||
|
||||
+2
-2
@@ -59,7 +59,7 @@ struct ServerSelectionScreen: View {
|
||||
.keyboardType(.URL)
|
||||
.autocapitalization(.none)
|
||||
.disableAutocorrection(true)
|
||||
.onChange(of: context.homeserverAddress) { _ in context.send(viewAction: .clearFooterError) }
|
||||
.onChange(of: context.homeserverAddress) { context.send(viewAction: .clearFooterError) }
|
||||
.submitLabel(.done)
|
||||
.onSubmit(submit)
|
||||
|
||||
@@ -107,7 +107,7 @@ struct ServerSelection_Previews: PreviewProvider, TestablePreview {
|
||||
NavigationStack {
|
||||
ServerSelectionScreen(context: invalidViewModel.context)
|
||||
}
|
||||
.snapshotPreferences(delay: 0.25)
|
||||
.snapshotPreferences(delay: 1)
|
||||
}
|
||||
|
||||
static func makeViewModel(for homeserverAddress: String) -> ServerSelectionScreenViewModel {
|
||||
|
||||
@@ -30,7 +30,7 @@ struct BugReportScreen: View {
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
.toolbar { toolbar }
|
||||
.interactiveDismissDisabled()
|
||||
.onChange(of: selectedScreenshot) { newItem in
|
||||
.onChange(of: selectedScreenshot) { _, newItem in
|
||||
Task {
|
||||
guard let data = try? await newItem?.loadTransferable(type: Data.self),
|
||||
let image = UIImage(data: data)
|
||||
|
||||
@@ -65,8 +65,8 @@ struct PollFormScreen: View {
|
||||
}
|
||||
.focused($focus, equals: .option(index: index))
|
||||
.accessibilityIdentifier(A11yIdentifiers.pollFormScreen.optionID(index))
|
||||
.onChange(of: context.options[index].text) { optionText in
|
||||
guard let lastCharacter = optionText.last, lastCharacter.isNewline else {
|
||||
.onChange(of: context.options[index].text) { _, newOptionText in
|
||||
guard let lastCharacter = newOptionText.last, lastCharacter.isNewline else {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ struct EmojiPickerScreen: View {
|
||||
}
|
||||
.presentationDetents([.medium, .large])
|
||||
.presentationDragIndicator(isSearching ? .hidden : .visible)
|
||||
.onChange(of: searchString) { _ in
|
||||
.onChange(of: searchString) {
|
||||
context.send(viewAction: .search(searchString: searchString))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ struct GlobalSearchScreen: View {
|
||||
selectedRoom = context.viewState.rooms.first
|
||||
searchFieldFocus = true
|
||||
}
|
||||
.onChange(of: context.viewState.rooms) { _ in
|
||||
.onChange(of: context.viewState.rooms) {
|
||||
selectedRoom = context.viewState.rooms.first
|
||||
}
|
||||
.onTapGesture {
|
||||
|
||||
@@ -66,10 +66,10 @@ struct HomeScreenContent: View {
|
||||
.onReceive(scrollViewAdapter.isScrolling) { _ in
|
||||
updateVisibleRange()
|
||||
}
|
||||
.onChange(of: context.searchQuery) { _ in
|
||||
.onChange(of: context.searchQuery) {
|
||||
updateVisibleRange()
|
||||
}
|
||||
.onChange(of: context.viewState.visibleRooms) { _ in
|
||||
.onChange(of: context.viewState.visibleRooms) {
|
||||
updateVisibleRange()
|
||||
|
||||
// We have been seeing a lot of issues around the room list not updating properly after
|
||||
|
||||
@@ -110,7 +110,7 @@ struct InviteUsersScreen: View {
|
||||
.frame(width: cellWidth)
|
||||
}
|
||||
}
|
||||
.onChange(of: context.viewState.scrollToLastID) { lastAddedID in
|
||||
.onChange(of: context.viewState.scrollToLastID) { _, lastAddedID in
|
||||
guard let id = lastAddedID else { return }
|
||||
withElementAnimation(.easeInOut) {
|
||||
scrollView.scrollTo(id)
|
||||
|
||||
@@ -107,7 +107,7 @@ struct JoinRoomScreen: View {
|
||||
VStack(alignment: .leading, spacing: 12) {
|
||||
HStack(spacing: 0) {
|
||||
TextField("", text: $context.knockMessage, axis: .vertical)
|
||||
.onChange(of: context.knockMessage) { newValue in
|
||||
.onChange(of: context.knockMessage) { _, newValue in
|
||||
context.knockMessage = String(newValue.prefix(1000))
|
||||
}
|
||||
.lineLimit(4, reservesSpace: true)
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ struct IdentityConfirmationScreen_Previews: PreviewProvider, TestablePreview {
|
||||
NavigationStack {
|
||||
IdentityConfirmationScreen(context: viewModel.context)
|
||||
}
|
||||
.snapshotPreferences(delay: 0.25)
|
||||
.snapshotPreferences(delay: 1)
|
||||
}
|
||||
|
||||
private static var viewModel: IdentityConfirmationScreenViewModel {
|
||||
|
||||
@@ -71,8 +71,8 @@ struct RoomChangeRolesScreen: View {
|
||||
.frame(width: cellWidth)
|
||||
}
|
||||
}
|
||||
.onChange(of: context.viewState.lastPromotedMember) { member in
|
||||
guard let member else { return }
|
||||
.onChange(of: context.viewState.lastPromotedMember) { _, newValue in
|
||||
guard let member = newValue else { return }
|
||||
withElementAnimation(.easeInOut) {
|
||||
scrollView.scrollTo(member.id)
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ struct RoomDetailsScreen: View {
|
||||
ListRow(label: .default(title: L10n.commonFavourite, icon: \.favourite),
|
||||
kind: .toggle($context.isFavourite))
|
||||
.accessibilityIdentifier(A11yIdentifiers.roomDetailsScreen.favourite)
|
||||
.onChange(of: context.isFavourite) { newValue in
|
||||
.onChange(of: context.isFavourite) { _, newValue in
|
||||
context.send(viewAction: .toggleFavourite(isFavourite: newValue))
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ struct RoomNotificationSettingsScreen: View {
|
||||
kind: .toggle($context.allowCustomSetting))
|
||||
.accessibilityIdentifier(A11yIdentifiers.roomNotificationSettingsScreen.allowCustomSetting)
|
||||
.disabled(context.viewState.notificationSettingsState.isLoading)
|
||||
.onChange(of: context.allowCustomSetting) { _ in
|
||||
.onChange(of: context.allowCustomSetting) {
|
||||
context.send(viewAction: .changedAllowCustomSettings)
|
||||
}
|
||||
} footer: {
|
||||
|
||||
@@ -47,8 +47,8 @@ struct RoomPollsHistoryScreen: View {
|
||||
}
|
||||
.pickerStyle(.segmented)
|
||||
.readableFrame(maxWidth: 475)
|
||||
.onChange(of: context.filter) { value in
|
||||
context.send(viewAction: .filter(value))
|
||||
.onChange(of: context.filter) { _, newValue in
|
||||
context.send(viewAction: .filter(newValue))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -180,18 +180,18 @@ struct ComposerToolbar: View {
|
||||
guard !composerFocused else { return }
|
||||
composerFocused = true
|
||||
}
|
||||
.onChange(of: context.composerFocused) { newValue in
|
||||
.onChange(of: context.composerFocused) { _, newValue in
|
||||
guard composerFocused != newValue else { return }
|
||||
|
||||
composerFocused = newValue
|
||||
}
|
||||
.onChange(of: composerFocused) { newValue in
|
||||
.onChange(of: composerFocused) { _, newValue in
|
||||
context.composerFocused = newValue
|
||||
}
|
||||
.onChange(of: context.plainComposerText) { _ in
|
||||
.onChange(of: context.plainComposerText) {
|
||||
context.send(viewAction: .plainComposerTextChanged)
|
||||
}
|
||||
.onChange(of: context.composerFormattingEnabled) { _ in
|
||||
.onChange(of: context.composerFormattingEnabled) {
|
||||
context.send(viewAction: .didToggleFormattingOptions)
|
||||
}
|
||||
.onAppear {
|
||||
|
||||
+2
-2
@@ -48,8 +48,8 @@ struct VoiceMessagePreviewComposer: View {
|
||||
showCursor: playerState.showProgressIndicator,
|
||||
onSeek: onSeek)
|
||||
}
|
||||
.onChange(of: isDragging) { isDragging in
|
||||
onScrubbing(isDragging)
|
||||
.onChange(of: isDragging) { _, newValue in
|
||||
onScrubbing(newValue)
|
||||
}
|
||||
.padding(.vertical, 4.0)
|
||||
.padding(.horizontal, 6.0)
|
||||
|
||||
@@ -32,8 +32,8 @@ struct SwipeRightAction<Label: View>: ViewModifier {
|
||||
.offset(x: xOffset, y: 0.0)
|
||||
.animation(.interactiveSpring().speed(0.5), value: xOffset)
|
||||
.timelineGesture(gesture)
|
||||
.onChange(of: dragGestureActive) { value in
|
||||
if value == true {
|
||||
.onChange(of: dragGestureActive) { _, newValue in
|
||||
if newValue == true {
|
||||
if shouldStartAction() {
|
||||
feedbackGenerator.prepare()
|
||||
canStartAction = true
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ struct SecureBackupRecoveryKeyScreen: View {
|
||||
ScrollViewReader { reader in
|
||||
mainContent
|
||||
.padding(16)
|
||||
.onChange(of: focused) { newValue in
|
||||
.onChange(of: focused) { _, newValue in
|
||||
guard newValue == true else { return }
|
||||
reader.scrollTo(textFieldIdentifier)
|
||||
}
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ struct AnalyticsSettingsScreen: View {
|
||||
Section {
|
||||
ListRow(label: .plain(title: L10n.screenAnalyticsSettingsShareData),
|
||||
kind: .toggle($context.enableAnalytics))
|
||||
.onChange(of: context.enableAnalytics) { _ in
|
||||
.onChange(of: context.enableAnalytics) {
|
||||
context.send(viewAction: .toggleAnalytics)
|
||||
}
|
||||
} footer: {
|
||||
|
||||
+4
-4
@@ -86,7 +86,7 @@ struct NotificationSettingsScreen: View {
|
||||
Section {
|
||||
ListRow(label: .plain(title: L10n.screenNotificationSettingsEnableNotifications),
|
||||
kind: .toggle($context.enableNotifications))
|
||||
.onChange(of: context.enableNotifications) { _ in
|
||||
.onChange(of: context.enableNotifications) {
|
||||
context.send(viewAction: .changedEnableNotifications)
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ struct NotificationSettingsScreen: View {
|
||||
kind: .toggle($context.roomMentionsEnabled))
|
||||
.disabled(context.viewState.settings?.roomMentionsEnabled == nil)
|
||||
.allowsHitTesting(!context.viewState.applyingChange)
|
||||
.onChange(of: context.roomMentionsEnabled) { _ in
|
||||
.onChange(of: context.roomMentionsEnabled) {
|
||||
context.send(viewAction: .roomMentionChanged)
|
||||
}
|
||||
} header: {
|
||||
@@ -143,7 +143,7 @@ struct NotificationSettingsScreen: View {
|
||||
kind: .toggle($context.callsEnabled))
|
||||
.disabled(context.viewState.settings?.callsEnabled == nil)
|
||||
.allowsHitTesting(!context.viewState.applyingChange)
|
||||
.onChange(of: context.callsEnabled) { _ in
|
||||
.onChange(of: context.callsEnabled) {
|
||||
context.send(viewAction: .callsChanged)
|
||||
}
|
||||
} header: {
|
||||
@@ -158,7 +158,7 @@ struct NotificationSettingsScreen: View {
|
||||
kind: .toggle($context.invitationsEnabled))
|
||||
.disabled(context.viewState.settings?.invitationsEnabled == nil)
|
||||
.allowsHitTesting(!context.viewState.applyingChange)
|
||||
.onChange(of: context.invitationsEnabled) { _ in
|
||||
.onChange(of: context.invitationsEnabled) {
|
||||
context.send(viewAction: .invitationsChanged)
|
||||
}
|
||||
} header: {
|
||||
|
||||
@@ -377,11 +377,12 @@ struct TimelineItemBubbledStylerView_Previews: PreviewProvider, TestablePreview
|
||||
.previewDisplayName("Replies")
|
||||
threads
|
||||
.previewDisplayName("Thread decorator")
|
||||
.snapshotPreferences(delay: 1)
|
||||
encryptionAuthenticity
|
||||
.previewDisplayName("Encryption Indicators")
|
||||
pinned
|
||||
.previewDisplayName("Pinned messages")
|
||||
.snapshotPreferences(delay: 2.0)
|
||||
.snapshotPreferences(delay: 1)
|
||||
}
|
||||
|
||||
static var mockTimeline: some View {
|
||||
|
||||
@@ -25,7 +25,7 @@ struct TimelineStyler<Content: View>: View {
|
||||
|
||||
var body: some View {
|
||||
mainContent
|
||||
.onChange(of: timelineItem.properties.deliveryStatus) { newStatus in
|
||||
.onChange(of: timelineItem.properties.deliveryStatus) { _, newStatus in
|
||||
if case .sendingFailed = newStatus {
|
||||
guard task == nil else {
|
||||
return
|
||||
|
||||
@@ -43,7 +43,7 @@ struct ReactionsSummaryView: View {
|
||||
scrollView.scrollTo(selectedReactionKey)
|
||||
}
|
||||
}
|
||||
.onChange(of: selectedReactionKey) { _ in
|
||||
.onChange(of: selectedReactionKey) {
|
||||
scrollView.scrollTo(selectedReactionKey)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ struct TypingIndicatorView: View {
|
||||
.truncationMode(.middle)
|
||||
.padding(.horizontal, 4)
|
||||
.animation(.elementDefault, value: typingMembers.members)
|
||||
.onChange(of: typingMembers.members) { newValue in
|
||||
.onChange(of: typingMembers.members) { _, newValue in
|
||||
if !newValue.isEmpty {
|
||||
didShowTextOnce = true
|
||||
}
|
||||
|
||||
+2
-2
@@ -51,8 +51,8 @@ struct VoiceMessageRoomPlaybackView: View {
|
||||
}
|
||||
.padding(.leading, 2)
|
||||
.padding(.trailing, 8)
|
||||
.onChange(of: isDragging) { isDragging in
|
||||
onScrubbing(isDragging)
|
||||
.onChange(of: isDragging) { _, newValue in
|
||||
onScrubbing(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:517d2adbb60ff9e40d7b0f530b05f3810f302180fed9259673afe57f2598d669
|
||||
size 174777
|
||||
oid sha256:27cf16e147a82ad2126e43a511d07ced65468b0c9ec18f86e30a1546ef9a0864
|
||||
size 174751
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e9a505f51ed4ce883a44c63856329f468b285480cf38d1f7e9f9dddd39beacd1
|
||||
size 286018
|
||||
oid sha256:17403a44b5f71ef51b12a2392d3c8eed2b30cd4ddeb25188c29e738f8ed3c3fc
|
||||
size 285676
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ededd3cbc04f946fd5374d1f43ec0d9fe6a1537aae193a7dffbf9dc5ce2c2ff1
|
||||
size 284462
|
||||
oid sha256:2f576e2c44ecda928a8afdbd29bf9c79631517d9c42d6b8a16b1dcdbac1885a9
|
||||
size 284180
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c7524b103a29f907484c183458dca038ccfe5d4396328fd774ce15d321eea13
|
||||
size 107183
|
||||
oid sha256:c4563bc0de73f8053c8c6a8ab08aea50ee6a5328aa46a5c627f37dfb1bdd6f5b
|
||||
size 107113
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:685784026c5fbf1676f2e41105303c150a8520c0588081960dd6c679cb16f86f
|
||||
size 176916
|
||||
oid sha256:7a1ff79835b6de47a22fdbdca05a56a257aa5341da6d0515e02324570c70e05d
|
||||
size 176994
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aaea7ab92cc40488cccadca3b281008eb829e49f99b9f55c4dad405afbf5d6ae
|
||||
size 287689
|
||||
oid sha256:fc726f43094e192a9f367c0ece419d581de5d43bab53275eaa73ae25969e65ab
|
||||
size 287326
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:842fd304e64840dc39ad6231c8a52981de84d23d212229051c4b7cc2649fde28
|
||||
size 285736
|
||||
oid sha256:982eb9dd6ed5fe3c4c13811ae463b80f1b571fec18953d98d641d367cd705db0
|
||||
size 285493
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c7524b103a29f907484c183458dca038ccfe5d4396328fd774ce15d321eea13
|
||||
size 107183
|
||||
oid sha256:c4563bc0de73f8053c8c6a8ab08aea50ee6a5328aa46a5c627f37dfb1bdd6f5b
|
||||
size 107113
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0ad54f532f3ec4333e004b763956ea2ffec9aecfa0c3113b423f6a9f85ac87c7
|
||||
size 127545
|
||||
oid sha256:1af078d4671249c492161013d753905feed81303ce9e172e17e3432c3acfc372
|
||||
size 127533
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:799c4d6ea7c9ae76270f0a4e5bdce5f1c8330b59fd0375cfccaa547fe10d9682
|
||||
size 190665
|
||||
oid sha256:1a39ebd070935b96d697dc0c70244962a8d55c6c9ce3e958808c35f8ed009506
|
||||
size 190461
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:900a641ca6e9d716f2ac6ea0d5fcb0bba0587315250fac01bc63e92242071d33
|
||||
size 188360
|
||||
oid sha256:e4278c55045120935c02fe570409295a0eb0b984a103e5fd09d314bb2f4e09a6
|
||||
size 188620
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9bf2e4421574f1fdfe25bebb6eafd22bae7e67dd032a4b3bd785dd48cd28b477
|
||||
size 65845
|
||||
oid sha256:516a4ad7cb46f4ef1ab316e6bea424abe8c5ef4767a2e4d838bccc80bb8db9be
|
||||
size 65830
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8dd04554290d3299b0ce0a95d2304bce2d90a7c130f48a64efc6fc4b3b15727c
|
||||
size 128846
|
||||
oid sha256:4bc439fffcd4b212a103493a07f7f0f336c69bd641b86bb84768cc0595a82bd2
|
||||
size 128840
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b8c11bc7b586274511cbaf4c3a54f5a3fe2ee51bf345d1feadcad327a207df02
|
||||
size 188412
|
||||
oid sha256:1eb05117714fb7853917a32dba87565ed0ad83b3097ca01703581dc0ec8e7b7a
|
||||
size 188275
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1c4444924cad6f07ea6b85d2ad3f7a2c1f60d6e4d03fc2ea0880df496b157132
|
||||
size 186021
|
||||
oid sha256:a421129a41149ca0c3be3981ef169ddcbce8b0c57a0b94ea43a3fea2dc4202f8
|
||||
size 186287
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9bf2e4421574f1fdfe25bebb6eafd22bae7e67dd032a4b3bd785dd48cd28b477
|
||||
size 65845
|
||||
oid sha256:516a4ad7cb46f4ef1ab316e6bea424abe8c5ef4767a2e4d838bccc80bb8db9be
|
||||
size 65830
|
||||
|
||||
@@ -24,7 +24,7 @@ struct TemplateScreen: View {
|
||||
}
|
||||
.compoundList()
|
||||
.navigationTitle(context.viewState.title)
|
||||
.onChange(of: context.composerText) { _ in
|
||||
.onChange(of: context.composerText) {
|
||||
context.send(viewAction: .textChanged)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -10,8 +10,7 @@ options:
|
||||
groupSortPosition: bottom
|
||||
createIntermediateGroups: true
|
||||
deploymentTarget:
|
||||
iOS: '16.4'
|
||||
macOS: '13.3'
|
||||
iOS: '17.6'
|
||||
groupOrdering:
|
||||
- order:
|
||||
- ElementX
|
||||
|
||||
Reference in New Issue
Block a user