Skip to content

Commit

Permalink
feat: Add dismiss handler when necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
valentinperignon committed Jun 26, 2024
1 parent b8c517f commit 214b983
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Mail/Views/Onboarding/OnboardingView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ struct OnboardingView: View {
private let slides = Slide.onboardingSlides

var body: some View {
WaveView(slides: slides, selectedSlide: $selectedSlide) { index in
WaveView(slides: slides, selectedSlide: $selectedSlide, dismissHandler: nil) { index in
index == slides.count - 1 || (index == slides.count - 2 && selectedSlide == slides.count - 1)
} bottomView: { _ in
OnboardingBottomButtonsView(
Expand Down
8 changes: 1 addition & 7 deletions Mail/Views/Onboarding/SingleOnboardingView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,13 @@ struct SingleOnboardingView: View {
private let slides = [Slide.onboardingSlides.last!]

var body: some View {
WaveView(slides: slides, selectedSlide: .constant(0)) { _ in
WaveView(slides: slides, selectedSlide: .constant(0), dismissHandler: dismiss.callAsFunction) { _ in
OnboardingBottomButtonsView(
selection: .constant(0),
slideCount: 1
)
}
.ignoresSafeArea()
.overlay(alignment: .topLeading) {
CloseButton(size: .regular, dismissAction: dismiss)
.padding(.top, UIPadding.onBoardingLogoTop)
.padding(.top, value: .verySmall)
.padding(.leading, value: .medium)
}
.onAppear {
if UIDevice.current.userInterfaceIdiom == .phone {
UIDevice.current
Expand Down
7 changes: 6 additions & 1 deletion Mail/Views/Onboarding/WaveView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ struct WaveView<BottomView: View>: UIViewControllerRepresentable {
let slides: [Slide]
let headerImage: UIImage?

let dismissHandler: (() -> Void)?

let shouldAnimateBottomViewForIndex: (Int) -> Bool
@ViewBuilder var bottomView: (Int) -> BottomView

Expand All @@ -39,13 +41,15 @@ struct WaveView<BottomView: View>: UIViewControllerRepresentable {
selectedSlide: Binding<Int>,
isScrollEnabled: Bool = true,
headerImage: UIImage? = MailResourcesAsset.logoText.image,
dismissHandler: (() -> Void)? = nil,
shouldAnimateBottomViewForIndex: @escaping (Int) -> Bool = { _ in return false },
@ViewBuilder bottomView: @escaping (Int) -> BottomView
) {
self.slides = slides
self.headerImage = headerImage
_selectedSlide = selectedSlide
self.isScrollEnabled = isScrollEnabled
self.dismissHandler = dismissHandler
self.shouldAnimateBottomViewForIndex = shouldAnimateBottomViewForIndex
self.bottomView = bottomView
}
Expand All @@ -55,7 +59,8 @@ struct WaveView<BottomView: View>: UIViewControllerRepresentable {
headerImage: headerImage,
slides: slides,
pageIndicatorColor: accentColor.primary.color,
isScrollEnabled: isScrollEnabled
isScrollEnabled: isScrollEnabled,
dismissHandler: dismissHandler
)

let controller = OnboardingViewController(configuration: configuration)
Expand Down
2 changes: 1 addition & 1 deletion Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/Infomaniak/ios-onboarding",
"state" : {
"revision" : "d1577beb704862e3044441fe0500923251c71f50",
"revision" : "93c65af1343a928bf63ac58cb06ace2f0170d264",
"version" : "1.0.3"
}
},
Expand Down

0 comments on commit 214b983

Please sign in to comment.