Skip to content

Conversation

@razvanlitianu
Copy link
Collaborator

@razvanlitianu razvanlitianu commented Oct 6, 2025

📜 Tickets

Jira ticket
Github issue

💡 Description

Ensures the "Skip" button is visible during the first run onboarding flow on iPad, addressing its previous absence and improving user navigation for new users on iPad devices.

Navigate to firefox-ios/nimbus-features/onboardingFrameworkFeature.yaml
Change enableModernUi: false to enableModernUi: true
This enables the new SwiftUI-based onboarding framework

Before
Simulator Screenshot - iPad (A16) - 2025-10-06 at 15 16 54

After
Simulator Screenshot - iPad (A16) - 2025-10-06 at 15 07 28

🎥 Demos

Demo

📝 Checklist

  • I filled in the ticket numbers and a description of my work
  • I updated the PR name to follow our PR naming guidelines
  • I ensured unit tests pass and wrote tests for new code
  • If working on UI, I checked and implemented accessibility (Dynamic Text and VoiceOver)
  • If adding telemetry, I read the data stewardship requirements and will request a data review
  • If adding or modifying strings, I read the guidelines and will request a string review from l10n
  • If needed, I updated documentation and added comments to complex code

@razvanlitianu razvanlitianu marked this pull request as ready for review October 6, 2025 12:09
@razvanlitianu razvanlitianu requested a review from a team as a code owner October 6, 2025 12:09
@mobiletest-ci-bot
Copy link

mobiletest-ci-bot commented Oct 7, 2025

🥇 Perfect PR size

Smaller PRs are easier to review. Thanks for making life easy for reviewers! ✨

💬 Description craftsman

Great PR description! Reviewers salute you 🫡

❌ Per-file test coverage gate

The following changed file(s) are below 35.0% coverage:

File Coverage Required
BrowserKit/Sources/Common/Utilities/DynamicFontHelper.swift 0.0% 35.0%
BrowserKit/Sources/Common/Utilities/TextStyling.swift 0.0% 35.0%
BrowserKit/Sources/OnboardingKit/Models/OnboardingFlowViewModel.swift 0.0% 35.0%
BrowserKit/Sources/OnboardingKit/Views/Regular/OnboardingMultipleChoiceCardViewRegular.swift 0.0% 35.0%
BrowserKit/Sources/OnboardingKit/Views/Regular/OnboardingViewRegular.swift 0.0% 35.0%

Generated by 🚫 Danger Swift against 821742b

Copy link
Contributor

@cyndichin cyndichin left a comment

Choose a reason for hiding this comment

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

thanks @razvanlitianu had some comments during my initial review, thank you!

Text(viewModel.skipText)
.bold()
.foregroundColor(skipTextColor)
.dynamicTypeSize(...DynamicTypeSize.xxxLarge)
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we be using our FXFontStyles from the design system to adjust the this appropriately? I see you made scaledSwiftUIFont with a size cap, so curious on what this is doing here.

Copy link
Collaborator Author

@razvanlitianu razvanlitianu Oct 7, 2025

Choose a reason for hiding this comment

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

Hey @cyndichin so this is not a font, it says basically "grow until the DynamicTypeSize.xxxLarge size but not beyond it". It is related to accessibility sizes and the last ones are really large.

static let imageHeight: CGFloat = 150
static let tosImageHeight: CGFloat = 70
static let cornerRadius: CGFloat = 20
static let secondaryButtonTopPadding: CGFloat = 8
Copy link
Contributor

Choose a reason for hiding this comment

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

nice clean up 🧹

Comment on lines 91 to 95
private func skipOnboarding() {
let currentIndex = min(max(viewModel.pageCount, 0), viewModel.onboardingCards.count - 1)
let currentCardName = viewModel.onboardingCards[currentIndex].name
viewModel.onComplete(currentCardName)
}
Copy link
Contributor

Choose a reason for hiding this comment

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

this seems like a good thing to test, curious why this live in the view instead of viewModel since logic looks like it can be self contained and the button action can be called viewModel.skipOnboarding

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Good catch. I'll change it.

Comment on lines +58 to +66
Button(" ", action: {})
.font(UX.CardView.secondaryActionFont)
.buttonStyle(.borderedProminent)
.controlSize(.large)
.opacity(0)
.accessibilityHidden(true)
.disabled(true)
Copy link
Contributor

Choose a reason for hiding this comment

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

can we add a comment on what this empty button with no action is for? 🤔

@razvanlitianu
Copy link
Collaborator Author

@mergify rebase

@razvanlitianu razvanlitianu force-pushed the rlitianu/FXIOS-13730-#29785-New-first-run-onboarding]iPad]-The-Skip-button-is-missing-from-the-onboarding-on-iPad branch from 7598d38 to 18d9a21 Compare October 8, 2025 10:37
@mergify
Copy link
Contributor

mergify bot commented Oct 8, 2025

rebase

✅ Branch has been successfully rebased

… identifiers (#29834)

* Add correct key and value for Accessibility identifiers for shake to summarize

* Remove unused label, add correct string key

* Refactor strings

* Add old string to proper struct

* Add strings to 144 struct

* Added missing strings to oldStruct

* Restore previous key

---------

Co-authored-by: Filippo Zazzeroni <[email protected]>
}
}

func errorButtonLabel(for configuration: SummarizeViewConfiguration) -> String {
Copy link
Contributor

Choose a reason for hiding this comment

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

I see a bunch of changes related to summarizer, are these changes intentional?

}
}

func errorButtonLabel(for configuration: SummarizeViewConfiguration) -> String {
Copy link
Contributor

@cyndichin cyndichin Oct 9, 2025

Choose a reason for hiding this comment

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

I see a bunch of changes related to summarizer, are these changes intentional? cc: @issammani

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants