From 400cf95126c9c796d5729710c338eb606c33bda5 Mon Sep 17 00:00:00 2001 From: Cassio Rossi Date: Thu, 30 Apr 2026 16:13:31 -0300 Subject: [PATCH 1/2] fix(onboarding): skip push permission prompt on Mac (Designed for iPad) On macOS, the push notification permission prompt behaves unreliably for iPad-designed apps. Auto-mark as authorized (matching existing ATT pattern) so the onboarding flow isn't blocked. Co-Authored-By: Claude Opus 4.6 --- .../OnboardingLibrary/ViewModels/PermissionManager.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/ViewModels/PermissionManager.swift b/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/ViewModels/PermissionManager.swift index af11fdf1..95bf7ebb 100644 --- a/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/ViewModels/PermissionManager.swift +++ b/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/ViewModels/PermissionManager.swift @@ -23,6 +23,11 @@ public final class PermissionManager { /// Check current push notification permission status from system func checkPushPermissionStatus() async { + if ProcessInfo.processInfo.isiOSAppOnMac { + currentPushStatus = .authorized + return + } + let status = await PushNotification.authorizationStatus currentPushStatus = status } From 043f3ab3b082cd85d75d14a7b17a023dd6664d95 Mon Sep 17 00:00:00 2001 From: Cassio Rossi Date: Thu, 30 Apr 2026 16:17:16 -0300 Subject: [PATCH 2/2] fix(onboarding): increase features page height to prevent content clipping The TabView height of 320pt was too small on iPhone, causing the first card title and last card description to be cut off. Increased to 370pt. Co-Authored-By: Claude Opus 4.6 --- .../OnboardingLibrary/Views/Screen2_FeaturesView.swift | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/Views/Screen2_FeaturesView.swift b/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/Views/Screen2_FeaturesView.swift index 8ee22533..cbe2bdc9 100644 --- a/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/Views/Screen2_FeaturesView.swift +++ b/MacMagazine/Features/OnboardingLibrary/Sources/OnboardingLibrary/Views/Screen2_FeaturesView.swift @@ -59,7 +59,6 @@ struct FeaturesView: View { } .containerRelativeFrame([.horizontal, .vertical]) .overlay(alignment: .topTrailing) { - // Skip button - acts like a toolbar OnboardingSkipButton( label: "Pular novidades", hint: "Vá direto para a tela de permissões" @@ -72,7 +71,6 @@ struct FeaturesView: View { .animation(.easeInOut(duration: 0.25), value: isLastPage) .allowsHitTesting(!isLastPage) } - // .background(OnboardingBackground()) .onAppear { animateIn = true } .onDisappear { animateIn = false } .trackScreen(AnalyticsConstants.Screen.onboardingFeatures.name, analytics: coordinator.analytics) @@ -111,7 +109,6 @@ struct FeaturesView: View { private var landscapeLayout: some View { HStack(spacing: 20) { - // Left side - Logo and title VStack(spacing: 8) { logoView Text("Novidades no app") @@ -122,7 +119,6 @@ struct FeaturesView: View { } .frame(width: 120) - // Right side - Cards and footer VStack(spacing: 0) { Spacer() @@ -131,7 +127,6 @@ struct FeaturesView: View { Spacer() - // Footer at bottom: dots centered, or dots left + button right HStack { if isLastPage { pageIndicator @@ -186,7 +181,7 @@ struct FeaturesView: View { if isIPad { return 260 } - return 300 + return 320 } private func pageView(cards: [OnBoardingFeature]) -> some View {