Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>

This commit is contained in:
Matt Bruce 2026-01-25 23:25:06 -06:00
parent 7f45041b52
commit e434c52e78
4 changed files with 3 additions and 146 deletions

View File

@ -335,6 +335,7 @@
"isCommentAutoGenerated" : true
},
"Adjust arc duration" : {
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {
@ -2178,6 +2179,7 @@
}
},
"Ritual length" : {
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {
@ -2204,6 +2206,7 @@
"isCommentAutoGenerated" : true
},
"Ritual pacing" : {
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {

View File

@ -1,129 +0,0 @@
import SwiftUI
import Bedrock
struct ProUpgradeView: View {
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack(spacing: Design.Spacing.xxLarge) {
headerSection
featuresSection
comingSoonSection
}
.padding(Design.Spacing.large)
}
.background(AppSurface.primary)
.navigationTitle(String(localized: "Rituals Pro"))
.navigationBarTitleDisplayMode(.inline)
}
private var headerSection: some View {
VStack(spacing: Design.Spacing.medium) {
Image(systemName: "crown.fill")
.font(.system(size: Design.BaseFontSize.title))
.foregroundStyle(AppAccent.primary)
.accessibilityHidden(true)
Text(String(localized: "Unlock Your Full Potential"))
.font(.title2)
.bold()
.foregroundStyle(AppTextColors.primary)
.multilineTextAlignment(.center)
Text(String(localized: "Rituals Pro gives you everything you need to build lasting habits."))
.font(.body)
.foregroundStyle(AppTextColors.secondary)
.multilineTextAlignment(.center)
}
.padding(.top, Design.Spacing.large)
}
private var featuresSection: some View {
VStack(alignment: .leading, spacing: Design.Spacing.medium) {
ProFeatureRowView(
icon: "infinity",
title: String(localized: "Unlimited Rituals"),
subtitle: String(localized: "Create as many arcs as you need")
)
ProFeatureRowView(
icon: "chart.line.uptrend.xyaxis",
title: String(localized: "Advanced Insights"),
subtitle: String(localized: "Deeper analytics on your progress")
)
ProFeatureRowView(
icon: "icloud.fill",
title: String(localized: "Priority Sync"),
subtitle: String(localized: "Faster iCloud synchronization")
)
ProFeatureRowView(
icon: "heart.fill",
title: String(localized: "Support Development"),
subtitle: String(localized: "Help us build more features")
)
}
.padding(Design.Spacing.large)
.background(AppSurface.card)
.clipShape(.rect(cornerRadius: Design.CornerRadius.large))
}
private var comingSoonSection: some View {
VStack(spacing: Design.Spacing.medium) {
Button {
// No action - coming soon
} label: {
Text(String(localized: "Coming Soon"))
.font(.headline)
.foregroundStyle(AppTextColors.disabled)
.frame(maxWidth: .infinity)
.frame(height: AppMetrics.Size.buttonHeight)
.background(AppSurface.tertiary)
.clipShape(.rect(cornerRadius: Design.CornerRadius.medium))
}
.disabled(true)
Text(String(localized: "Pro features are in development"))
.font(.caption)
.foregroundStyle(AppTextColors.secondary)
}
}
}
private struct ProFeatureRowView: View {
let icon: String
let title: String
let subtitle: String
var body: some View {
HStack(spacing: Design.Spacing.medium) {
Image(systemName: icon)
.font(.title3)
.foregroundStyle(AppAccent.primary)
.frame(width: AppMetrics.Size.iconLarge)
.accessibilityHidden(true)
VStack(alignment: .leading, spacing: Design.Spacing.xxxSmall) {
Text(title)
.font(.subheadline)
.bold()
.foregroundStyle(AppTextColors.primary)
Text(subtitle)
.font(.caption)
.foregroundStyle(AppTextColors.secondary)
}
Spacer(minLength: Design.Spacing.small)
}
.accessibilityElement(children: .combine)
}
}
#Preview {
NavigationStack {
ProUpgradeView()
}
}

View File

@ -54,22 +54,6 @@ struct SettingsView: View {
)
}
SettingsSectionHeader(
title: String(localized: "Rituals Pro"),
systemImage: "crown.fill",
accentColor: AppAccent.secondary
)
SettingsCard(backgroundColor: AppSurface.card, borderColor: AppBorder.subtle) {
SettingsNavigationRow(
title: String(localized: "Upgrade to Pro"),
subtitle: String(localized: "Unlock unlimited rituals and more"),
backgroundColor: AppSurface.primary
) {
ProUpgradeView()
}
}
SettingsSectionHeader(
title: String(localized: "iCloud Sync"),
systemImage: "icloud",

View File

@ -68,7 +68,6 @@ Rituals is a paid, offline-first habit tracker built around customizable "ritual
- Daily reminder notifications with time picker
- Haptics and sound toggles (wired to habit check-ins)
- iCloud settings sync
- Pro upgrade placeholder
- Debug tools: reset onboarding, app icon generation, branding preview
### Onboarding