Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions V2er/View/Settings/SettingsPage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,25 @@ struct SettingsPage: View {
safariURL = IdentifiableURL(url: url)
}
} label: {
SectionView("问题反馈", showDivider: false) {
HStack {
Image(systemName: "")
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An empty string is being passed to the systemName parameter of the Image initializer. This will likely fail to render an icon or produce a runtime warning. If no icon is intended, this Image view should be removed entirely, or a valid system icon name should be provided (like other settings items).

Suggested change
Image(systemName: "")
Image(systemName: "questionmark.circle")

Copilot uses AI. Check for mistakes.
.padding(.leading, 15)
HStack {
Text("唯一反馈渠道")
.font(.footnote)
.foregroundColor(.secondaryText)
VStack(alignment: .leading, spacing: 4) {
Text("问题反馈")
Text("唯一渠道: https://v2er.app/help")
.font(.footnote)
.foregroundColor(.secondaryText)
}
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The VStack containing the title and subtitle lacks an accessibility label or hint. For users relying on VoiceOver, this may result in two separate announcements rather than a cohesive single element. Consider adding an accessibility modifier to combine these into a single semantic element, or use an accessibility label that provides the complete information at once.

Suggested change
}
}
.accessibilityElement(children: .combine)
.accessibilityLabel("问题反馈,唯一渠道:https://v2er.app/help")

Copilot uses AI. Check for mistakes.
Spacer()
Image(systemName: "chevron.right")
.font(.body.weight(.regular))
.foregroundColor(.secondaryText)
.padding(.trailing, 16)
.padding(.trailing, 30)
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The trailing padding value of 30 is inconsistent with the padding pattern used throughout the settings page. SectionView uses paddingH=15, and the "关于" section uses .padding(.trailing, 16). This inconsistency may cause misalignment with other settings items.

Suggested change
.padding(.trailing, 30)
.padding(.trailing, 16)

Copilot uses AI. Check for mistakes.
}
.padding(.vertical, 17)
}
.background(Color.itemBackground)
.padding(.top, 8)
Comment on lines +48 to 67
Copy link

Copilot AI Dec 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The padding structure is inconsistent with other settings items. Looking at SectionView and SectionItemView, they use paddingH=15 for leading/trailing padding and don't duplicate the HStack wrapper. This custom implementation deviates from the established pattern used by items like "外观设置", "通用设置", etc., which use SectionItemView directly. Consider using SectionView or SectionItemView with a custom content closure to maintain consistency with the rest of the settings page.

Copilot uses AI. Check for mistakes.
}

Expand Down
Loading