-
Notifications
You must be signed in to change notification settings - Fork 47
feat: update feedback section to vertical layout in settings #124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Change the feedback section layout from horizontal to vertical: - Display title "问题反馈" on top - Show subtitle "唯一渠道: https://v2er.app/help" below - Align with other SectionView items 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR refactors the feedback section in the Settings page from a horizontal layout (using SectionView with subtitle on the right) to a vertical layout where the title "问题反馈" appears on top with the subtitle "唯一渠道: https://v2er.app/help" displayed below.
Key changes:
- Replaced SectionView component with custom HStack/VStack layout structure
- Changed from horizontal arrangement (title with right-aligned subtitle) to vertical stacking of title and subtitle
- Adjusted padding values to attempt alignment with other settings items
| .font(.body.weight(.regular)) | ||
| .foregroundColor(.secondaryText) | ||
| .padding(.trailing, 16) | ||
| .padding(.trailing, 30) |
Copilot
AI
Dec 27, 2025
There was a problem hiding this comment.
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.
| .padding(.trailing, 30) | |
| .padding(.trailing, 16) |
| Text("唯一渠道: https://v2er.app/help") | ||
| .font(.footnote) | ||
| .foregroundColor(.secondaryText) | ||
| } |
Copilot
AI
Dec 27, 2025
There was a problem hiding this comment.
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.
| } | |
| } | |
| .accessibilityElement(children: .combine) | |
| .accessibilityLabel("问题反馈,唯一渠道:https://v2er.app/help") |
| } label: { | ||
| SectionView("问题反馈", showDivider: false) { | ||
| HStack { | ||
| Image(systemName: "") |
Copilot
AI
Dec 27, 2025
There was a problem hiding this comment.
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).
| Image(systemName: "") | |
| Image(systemName: "questionmark.circle") |
| HStack { | ||
| Image(systemName: "") | ||
| .padding(.leading, 15) | ||
| HStack { | ||
| Text("唯一反馈渠道") | ||
| .font(.footnote) | ||
| .foregroundColor(.secondaryText) | ||
| VStack(alignment: .leading, spacing: 4) { | ||
| Text("问题反馈") | ||
| Text("唯一渠道: https://v2er.app/help") | ||
| .font(.footnote) | ||
| .foregroundColor(.secondaryText) | ||
| } | ||
| Spacer() | ||
| Image(systemName: "chevron.right") | ||
| .font(.body.weight(.regular)) | ||
| .foregroundColor(.secondaryText) | ||
| .padding(.trailing, 16) | ||
| .padding(.trailing, 30) | ||
| } | ||
| .padding(.vertical, 17) | ||
| } | ||
| .background(Color.itemBackground) | ||
| .padding(.top, 8) |
Copilot
AI
Dec 27, 2025
There was a problem hiding this comment.
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.
Code Coverage Report ❌Current coverage: 32.27% |
Summary
Test plan
🤖 Generated with Claude Code