From b31a74567d95b8f2d301e3c1da6257af2db69267 Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Fri, 9 Aug 2024 02:12:55 +0900 Subject: [PATCH] ios: fix appSheet (#4627) * ios: fix appSheet * old method * refactor * refactor * Revert "refactor" This reverts commit 32333a13d362a21d0ca81c1f82ecdcadd3f0b13b. * Revert "refactor" This reverts commit da42bd9ecf1809c943701669e36498ab8613ec6e. * Revert "old method" This reverts commit a9cd21947977e6acf7c9b8451f440a1dffda2add. * refactor * remove --------- Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> --- apps/ios/Shared/Views/Helpers/AppSheet.swift | 38 +++++--------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/apps/ios/Shared/Views/Helpers/AppSheet.swift b/apps/ios/Shared/Views/Helpers/AppSheet.swift index 0e64776ed6..9e699598e7 100644 --- a/apps/ios/Shared/Views/Helpers/AppSheet.swift +++ b/apps/ios/Shared/Views/Helpers/AppSheet.swift @@ -8,41 +8,15 @@ import SwiftUI -private struct SheetIsPresented: ViewModifier where C: View { - var isPresented: Binding - var onDismiss: (() -> Void)? - var sheetContent: () -> C - @Environment(\.scenePhase) var scenePhase - - func body(content: Content) -> some View { - content.sheet(isPresented: isPresented, onDismiss: onDismiss) { - sheetContent().modifier(PrivacySensitive()) - } - } -} - -private struct SheetForItem: ViewModifier where T: Identifiable, C: View { - var item: Binding - var onDismiss: (() -> Void)? - var sheetContent: (T) -> C - @Environment(\.scenePhase) var scenePhase - - func body(content: Content) -> some View { - content.sheet(item: item, onDismiss: onDismiss) { it in - sheetContent(it).modifier(PrivacySensitive()) - } - } -} - private struct PrivacySensitive: ViewModifier { @AppStorage(DEFAULT_PRIVACY_PROTECT_SCREEN) private var protectScreen = false @Environment(\.scenePhase) var scenePhase func body(content: Content) -> some View { - if case .active = scenePhase { + if !protectScreen { content } else { - content.privacySensitive(protectScreen).redacted(reason: .privacy) + content.privacySensitive(scenePhase != .active).redacted(reason: .privacy) } } } @@ -53,7 +27,9 @@ extension View { onDismiss: (() -> Void)? = nil, content: @escaping () -> Content ) -> some View where Content: View { - modifier(SheetIsPresented(isPresented: isPresented, onDismiss: onDismiss, sheetContent: content)) + sheet(isPresented: isPresented, onDismiss: onDismiss) { + content().modifier(PrivacySensitive()) + } } func appSheet( @@ -61,6 +37,8 @@ extension View { onDismiss: (() -> Void)? = nil, content: @escaping (T) -> Content ) -> some View where T: Identifiable, Content: View { - modifier(SheetForItem(item: item, onDismiss: onDismiss, sheetContent: content)) + sheet(item: item, onDismiss: onDismiss) { it in + content(it).modifier(PrivacySensitive()) + } } }