|
@@ -118,17 +118,13 @@ struct SettingsView: View {
|
|
|
private var aboutSection: some View {
|
|
private var aboutSection: some View {
|
|
|
SettingsSectionCard(title: "About", iconName: "info.circle.fill") {
|
|
SettingsSectionCard(title: "About", iconName: "info.circle.fill") {
|
|
|
VStack(spacing: 0) {
|
|
VStack(spacing: 0) {
|
|
|
- SettingsInfoRow(
|
|
|
|
|
- iconName: "app.badge.fill",
|
|
|
|
|
- title: "Version",
|
|
|
|
|
- value: viewModel.appVersion
|
|
|
|
|
- )
|
|
|
|
|
-
|
|
|
|
|
|
|
+ SettingsLinkRow(iconName: "globe", title: "Website", url: AppLinks.website)
|
|
|
SettingsRowDivider()
|
|
SettingsRowDivider()
|
|
|
-
|
|
|
|
|
- SettingsLinkRow(iconName: "hand.raised.fill", title: "Privacy Policy")
|
|
|
|
|
|
|
+ SettingsLinkRow(iconName: "hand.raised.fill", title: "Privacy", url: AppLinks.privacy)
|
|
|
SettingsRowDivider()
|
|
SettingsRowDivider()
|
|
|
- SettingsLinkRow(iconName: "doc.text.fill", title: "Terms of Service")
|
|
|
|
|
|
|
+ SettingsLinkRow(iconName: "doc.text.fill", title: "Terms and Conditions", url: AppLinks.terms)
|
|
|
|
|
+ SettingsRowDivider()
|
|
|
|
|
+ SettingsLinkRow(iconName: "questionmark.circle.fill", title: "Support", url: AppLinks.support)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -257,37 +253,17 @@ private struct SettingsActionRow: View {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-private struct SettingsInfoRow: View {
|
|
|
|
|
- let iconName: String
|
|
|
|
|
- let title: String
|
|
|
|
|
- let value: String
|
|
|
|
|
-
|
|
|
|
|
- var body: some View {
|
|
|
|
|
- HStack(spacing: 12) {
|
|
|
|
|
- SettingsRowIcon(systemName: iconName)
|
|
|
|
|
-
|
|
|
|
|
- Text(title)
|
|
|
|
|
- .font(.system(size: 14, weight: .semibold))
|
|
|
|
|
- .foregroundStyle(AppTheme.textPrimary)
|
|
|
|
|
-
|
|
|
|
|
- Spacer()
|
|
|
|
|
-
|
|
|
|
|
- Text(value)
|
|
|
|
|
- .font(.system(size: 13, weight: .medium))
|
|
|
|
|
- .foregroundStyle(AppTheme.textMuted)
|
|
|
|
|
- }
|
|
|
|
|
- .padding(.vertical, 4)
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
private struct SettingsLinkRow: View {
|
|
private struct SettingsLinkRow: View {
|
|
|
let iconName: String
|
|
let iconName: String
|
|
|
let title: String
|
|
let title: String
|
|
|
|
|
+ let url: URL
|
|
|
|
|
|
|
|
@State private var isHovered = false
|
|
@State private var isHovered = false
|
|
|
|
|
|
|
|
var body: some View {
|
|
var body: some View {
|
|
|
- Button {} label: {
|
|
|
|
|
|
|
+ Button {
|
|
|
|
|
+ AppLinks.open(url)
|
|
|
|
|
+ } label: {
|
|
|
HStack(spacing: 12) {
|
|
HStack(spacing: 12) {
|
|
|
SettingsRowIcon(systemName: iconName)
|
|
SettingsRowIcon(systemName: iconName)
|
|
|
|
|
|