Skip to content

Conversation

quanganhdo
Copy link
Member

@quanganhdo quanganhdo commented Oct 2, 2025

Task/Issue URL: https://app.asana.com/1/137249556945/task/1211485803691789?focus=true
Tech Design URL:
CC:

Description

Testing Steps

  1. Go through the support flow on macOS and iOS
  2. Submit bug reports
  3. You should see the new design without email field

Impact and Risks

Low

What could go wrong?


Note

Removes email input and direct API submission from the unified feedback forms on iOS/macOS, adds a contact-support link, and updates UI, localizations, docs, and tests accordingly.

  • Feedback (iOS/macOS):
    • Remove userEmail, email UI, validation, and direct API submission (drop Networking/APIService deps) from UnifiedFeedbackFormViewModel and views; enable submit when text is present.
    • Add support link (contactSupportClick) opening https://duckduckgo.com/subscription-support; wire into iOS/macOS views.
    • UI refinements: remove email TextField; improve iOS TextEditor background handling; macOS opens FAQ/support via app window manager.
  • Localizations:
    • Remove email label/placeholder strings; tweak intro copy; add ppro.feedback-form.support.text.
  • Tests:
    • Update feedback tests to new behavior (no email required; no API posting); adjust expectations; use MockAPIService { ... } style; minor Net Protection tests updated.
  • Docs:
    • Update Networking/README.md mock example to closure-based MockAPIService.

Written by Cursor Bugbot for commit 805d826. This will update automatically on new commits. Configure here.

Copy link

github-actions bot commented Oct 2, 2025

Messages
📖

You seem to be updating localized strings. Make sure that you request translations and include translated strings before you ship your change. See iOS and macOS localization guidelines for more information.

Generated by 🚫 dangerJS against 805d826

Comment on lines +433 to +445
private var editor: some View {
if #available(iOS 16.0, *) {
TextEditor(text: text)
.scrollContentBackground(.hidden)
.background(Color.clear)
.padding(.horizontal, 12)
} else {
TextEditor(text: text)
.padding(.horizontal, 12)
.background(Color.clear)
.onAppear { UITextView.appearance().backgroundColor = .clear }
.onDisappear { UITextView.appearance().backgroundColor = nil }
}
Copy link
Member Author

Choose a reason for hiding this comment

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

Borrowed this fix from ViewExtension.hideScrollContentBackground()


if let url {
NSWorkspace.shared.open(url)
Application.appDelegate.windowControllersManager.show(url: url, source: .ui, newTab: true)
Copy link
Member Author

Choose a reason for hiding this comment

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

Nicer way to open the URL in a new tab

@quanganhdo quanganhdo added the start macos translation Starts macOS translation workflow via Smartling label Oct 2, 2025
@quanganhdo quanganhdo marked this pull request as ready for review October 2, 2025 19:35
@Copilot Copilot AI review requested due to automatic review settings October 2, 2025 19:35
Copy link
Contributor

@Copilot Copilot AI left a 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 removes the email text field from the unified feedback form across both macOS and iOS platforms, replacing it with a simple support link. The goal is to simplify the feedback form by eliminating the optional email field while still providing users with a way to contact support if needed.

Key Changes

  • Removed email field UI components and validation logic
  • Replaced email field with a support link that opens the DuckDuckGo subscription support page
  • Removed all email-related API submission logic since feedback is now anonymous
  • Updated test cases to reflect the removal of email functionality

Reviewed Changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
macOS/DuckDuckGo/UnifiedFeedbackForm/UnifiedFeedbackFormViewModel.swift Removed email properties, API submission logic, and added support link functionality
macOS/DuckDuckGo/UnifiedFeedbackForm/UnifiedFeedbackFormView.swift Replaced email field UI with support link component
macOS/DuckDuckGo/UnifiedFeedbackForm/UnifiedFeedbackFormViewController.swift Removed API service dependency from view model initialization
iOS/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackFormViewModel.swift Mirror of macOS changes - removed email handling and API submission
iOS/DuckDuckGo/Subscription/Feedback/UnifiedFeedbackRootView.swift Replaced email field with support link in iOS UI
Various test files Updated test cases to remove email-related assertions and API mocking
Localization files Added support link text and marked email-related strings as stale

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

github-actions bot commented Oct 2, 2025

🌍 Smartling Translation Job Created

Job ID: dvtzf4aj8zsm
Platform: macOS

🔗 View in Smartling Dashboard

🔧 View Workflow Run

Next:

  • Review translation job
  • Authorize translation by adding the authorize translation label

@github-actions github-actions bot added needs translation authorization The Smartling translation job the PR is awaiting authorization. and removed start macos translation Starts macOS translation workflow via Smartling labels Oct 2, 2025
@quanganhdo quanganhdo added the authorize translation Authorizes Smartling translation job for PR label Oct 2, 2025
Copy link

github-actions bot commented Oct 2, 2025

❌ Smartling Approval Failed

Job ID: dvtzf4aj8zsm
Platform: macOS
Error: Approval failed - check workflow logs

🔗 View in Smartling Dashboard

🔧 View Workflow Run

Next steps:
• Verify the job ID is correct
• Check if job has content to translate

@github-actions github-actions bot removed the authorize translation Authorizes Smartling translation job for PR label Oct 2, 2025
@quanganhdo quanganhdo added the check translation status Check status of Smartling translation job label Oct 2, 2025
Copy link

github-actions bot commented Oct 2, 2025

⏳ Smartling Job Status

Job ID: dvtzf4aj8zsm
Platform: macOS
Status: IN_PROGRESS
Progress: 58%

🔗 View in Smartling Dashboard
🔧 View Workflow Run

@github-actions github-actions bot added translation in progress The strings in this PR are being translated on Smartling and removed check translation status Check status of Smartling translation job needs translation authorization The Smartling translation job the PR is awaiting authorization. labels Oct 2, 2025
cursor[bot]

This comment was marked as outdated.

@quanganhdo quanganhdo requested a review from samsymons October 3, 2025 14:12
Copy link
Collaborator

@samsymons samsymons left a comment

Choose a reason for hiding this comment

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

Overall looks great! Tested on iOS, iPadOS in both regular and windowed mode, and macOS. A couple notes:

  • The iOS/iPadOS implementation won't open support tab in the browser if the browser isn't the default (instead opening in Safari)
  • The macOS implementation opens the support link in a new tab, but doesn't dismiss the feedback modal, which feels a little strange (iOS does dismiss the modal)

No blockers otherwise though and the implementation looks good on iOS 26, 18, and 17. I haven't been able to test older iOS versions as I'm having issues downloading those SDKs.

Copy link

This PR has been inactive for more than 7 days and will be automatically closed 7 days from now.

@github-actions github-actions bot added the stale label Oct 14, 2025
@quanganhdo quanganhdo added check translation status Check status of Smartling translation job and removed translation in progress The strings in this PR are being translated on Smartling labels Oct 15, 2025
Copy link

✅ Smartling Job Status

Job ID: dvtzf4aj8zsm
Platform: macOS
Status: COMPLETED
Progress: 100%

🔗 View in Smartling Dashboard
🔧 View Workflow Run

Next: Download translations with:
• Platform: macOS
• Action: download
• Job ID: dvtzf4aj8zsm

@github-actions github-actions bot added translations ready Translations are ready to download from Smartling and removed check translation status Check status of Smartling translation job stale labels Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

translations ready Translations are ready to download from Smartling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants