Skip to content
This repository was archived by the owner on Feb 24, 2025. It is now read-only.

Commit 700dcec

Browse files
authored
Wrap subscription-related navigation links in LazyView (#3576)
Task/Issue URL: https://app.asana.com/0/414235014887631/1208761754194252/f Tech Design URL: CC: Description: This PR fixes an issue where subscription views were being fully initialized from the settings screen, rather than initializing when being navigated to. This isn't a problem for most of the subscription views, but the VPN view was having all of its various subscribers etc. spun up and reacting to state when they shouldn't have been.
1 parent 260b44b commit 700dcec

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

DuckDuckGo/SettingsSubscriptionView.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ struct SettingsSubscriptionView: View {
157157
private var subscriptionDetailsView: some View {
158158

159159
if settingsViewModel.state.subscription.entitlements.contains(.networkProtection) {
160-
NavigationLink(destination: NetworkProtectionRootView(), isActive: $isShowingVPN) {
160+
NavigationLink(destination: LazyView(NetworkProtectionRootView()), isActive: $isShowingVPN) {
161161
SettingsCellView(
162162
label: UserText.settingsPProVPNTitle,
163163
image: Image("SettingsPrivacyProVPN"),
@@ -167,7 +167,7 @@ struct SettingsSubscriptionView: View {
167167
}
168168

169169
if settingsViewModel.state.subscription.entitlements.contains(.dataBrokerProtection) {
170-
NavigationLink(destination: SubscriptionPIRView(), isActive: $isShowingDBP) {
170+
NavigationLink(destination: LazyView(SubscriptionPIRView()), isActive: $isShowingDBP) {
171171
SettingsCellView(
172172
label: UserText.settingsPProDBPTitle,
173173
image: Image("SettingsPrivacyProPIR"),
@@ -178,7 +178,7 @@ struct SettingsSubscriptionView: View {
178178

179179
if settingsViewModel.state.subscription.entitlements.contains(.identityTheftRestoration) {
180180
NavigationLink(
181-
destination: SubscriptionITPView(),
181+
destination: LazyView(SubscriptionITPView()),
182182
isActive: $isShowingITP) {
183183
SettingsCellView(
184184
label: UserText.settingsPProITRTitle,
@@ -188,7 +188,7 @@ struct SettingsSubscriptionView: View {
188188
}
189189
}
190190

191-
NavigationLink(destination: SubscriptionSettingsView(configuration: .subscribed, settingsViewModel: settingsViewModel)
191+
NavigationLink(destination: LazyView(SubscriptionSettingsView(configuration: .subscribed, settingsViewModel: settingsViewModel))
192192
.environmentObject(subscriptionNavigationCoordinator)
193193
) {
194194
SettingsCustomCell(content: { manageSubscriptionView })

0 commit comments

Comments
 (0)