Skip to content
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

bug: webkit iOS 17, animation flicker #28467

Closed
3 tasks done
moerphie opened this issue Nov 4, 2023 · 10 comments
Closed
3 tasks done

bug: webkit iOS 17, animation flicker #28467

moerphie opened this issue Nov 4, 2023 · 10 comments
Labels
bug: external Bugs in non-Ionic software that impact Ionic apps (I.e. WebKit, Angular, Android etc)

Comments

@moerphie
Copy link

moerphie commented Nov 4, 2023

Prerequisites

Ionic Framework Version

v7.x

Current Behavior

Dismissing the modal triggers a flicker, perhaps the backdrop?
It only occurs irregularly. Never in Chrome, Safari rarely, iOS Simulator more often.

Preview.mp4

Expected Behavior

No flicker expected

Steps to Reproduce

  1. Clone this repo: https://github.com/moerphie/ionic-modal-flicker
  2. yarn run install && yarn run dev
  3. Launch iOS Simulator and open/dismiss modal

Code Reproduction URL

https://github.com/moerphie/ionic-modal-flicker

Ionic Info

Ionic:

Ionic CLI : 7.1.1 (/usr/local/lib/node_modules/@ionic/cli)
Ionic Framework : @ionic/vue 7.5.3

Capacitor:

Capacitor CLI : 5.5.1
@capacitor/android : not installed
@capacitor/core : 5.5.1
@capacitor/ios : not installed

Utility:

cordova-res : not installed globally
native-run (update available: 2.0.0) : 1.7.4

System:

NodeJS : v16.17.0 (/usr/local/bin/node)
npm : 9.6.7
OS : macOS Unknown

Additional Information

No response

@ionitron-bot ionitron-bot bot added the triage label Nov 4, 2023
@liamdebeasi liamdebeasi self-assigned this Nov 6, 2023
@liamdebeasi
Copy link
Contributor

Thanks for the report. This is happening due to an iOS 17 regression with accelerated animations. We reported this to Apple last week: https://bugs.webkit.org/show_bug.cgi?id=263996

@liamdebeasi liamdebeasi changed the title bug: ion-modal flickering bug: webkit iOS 17, animation flicker Nov 6, 2023
@liamdebeasi liamdebeasi removed their assignment Nov 6, 2023
@liamdebeasi liamdebeasi added the bug: external Bugs in non-Ionic software that impact Ionic apps (I.e. WebKit, Angular, Android etc) label Nov 6, 2023
@ionitron-bot ionitron-bot bot removed the triage label Nov 6, 2023
liamdebeasi added a commit that referenced this issue Nov 13, 2023
Issue number: resolves #21769

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Toast does not support swipe gestures to dismiss.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Added a `swipeGesture` property that allows users to swipe toasts
closed.
Note: This is a combination of previous PRs
#28380 and
#28402

⚠️ There is a visual glitch on iOS where dragging and having the toast
animate back to its opened position causes a flicker. This is an iOS 17
regression and is being tracked in
#28467. This bug has
been reported to and confirmed by Apple.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!-- If this introduces a breaking change, please describe the impact
and migration path for existing applications below. -->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

⚠️ Give co-author credit to author in
#23124

---------

Co-authored-by: evgeniy-skakun <evgeniy-skakun@users.noreply.github.com>
@kim-hanho
Copy link

For someone looking for workaround:
Hide backdrop element for a very short time between (willDismiss) and (didDismiss) events.

<ion-modal
    #myModal
    (willDismiss)="myModal.showBackdrop = false"
    (didDismiss)="myModal.showBackdrop = true"
></ion-modal>

or

<ion-modal
    [ngClass]={'hide-backdrop' : isHideBackdrop}
    (willDismiss)="isHideBackdrop = true"
    (didDismiss)="isHideBackdrop = false"
></ion-modal>
ion-modal.hide-backdrop{
    &::part(backdrop){
        display:none
    }
}

I hope webkit will resolve the issue soon.

@liamdebeasi
Copy link
Contributor

liamdebeasi commented Apr 8, 2024

Hi everyone,

This has been resolved in iOS 17.5. This version is still in beta, but once it moves out of beta this fix will become available for everyone.

@EinfachHans
Copy link
Contributor

It's merged, but not released yet i think? Looks like it is not fixed in 17.4.1

@liamdebeasi
Copy link
Contributor

liamdebeasi commented Apr 8, 2024

I believe it was fixed in iOS 17.5.

edit: Whoops looks like iOS 17.5 is still in beta. I'll make a note of this above.

@EinfachHans
Copy link
Contributor

Ahh yes i see, thank you!

Also i really appreciate that the ionic team forwards webkit bugs directly to the apple team 🙌🏼👍🏼

@philmmoore
Copy link

I'm on 17.5 beta but I'm still seeing the flicker :(

image

@elbrinner
Copy link

I have the same problem, but in my case, it is infinite flashing

@dbousamra
Copy link

Also seeing issue

@philmmoore
Copy link

philmmoore commented Apr 30, 2024

Hey @liamdebeasi I'm still seeing this in the latest beta release for 17.5 should we expect this to be resolved now?

image

trim.E0F334D7-954E-4780-AD3A-4B2AB63C84F3.MOV

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug: external Bugs in non-Ionic software that impact Ionic apps (I.e. WebKit, Angular, Android etc)
Projects
None yet
Development

No branches or pull requests

7 participants