diff --git a/packages/mobile/ios/Podfile.lock b/packages/mobile/ios/Podfile.lock index 741369608..040690037 100644 --- a/packages/mobile/ios/Podfile.lock +++ b/packages/mobile/ios/Podfile.lock @@ -736,7 +736,7 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: a7c83b31436843459a1961bfd74b96033dc77234 + boost: 57d2868c099736d80fcd648bf211b4431e51a558 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 FBLazyVector: 71803c074f6325f10b5ec891c443b6bbabef0ca7 @@ -756,7 +756,7 @@ SPEC CHECKSUMS: MMKV: 9c4663aa7ca255d478ff10f2f5cb7d17c1651ccd MMKVCore: 89f5c8a66bba2dcd551779dea4d412eeec8ff5bb OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c - RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda + RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 RCTRequired: df81ab637d35fac9e6eb94611cfd20f0feb05455 RCTTypeSafety: 4636e4a36c7c2df332bda6d59b19b41c443d4287 React: e0cc5197a804031a6c53fb38483c3485fcb9d6f3 diff --git a/packages/mobile/ios/StandardNotes.xcodeproj/project.pbxproj b/packages/mobile/ios/StandardNotes.xcodeproj/project.pbxproj index 076e07005..a7662af20 100644 --- a/packages/mobile/ios/StandardNotes.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/StandardNotes.xcodeproj/project.pbxproj @@ -991,6 +991,7 @@ OTHER_LDFLAGS = ( "$(inherited)", " ", + "-Wl -ld_classic ", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1059,6 +1060,7 @@ OTHER_LDFLAGS = ( "$(inherited)", " ", + "-Wl -ld_classic ", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; diff --git a/packages/web/src/javascripts/Components/Panes/PaneAnimator.tsx b/packages/web/src/javascripts/Components/Panes/PaneAnimator.tsx index 0b8f82c5f..3eadc7de7 100644 --- a/packages/web/src/javascripts/Components/Panes/PaneAnimator.tsx +++ b/packages/web/src/javascripts/Components/Panes/PaneAnimator.tsx @@ -3,6 +3,13 @@ import { log, LoggingDomain } from '@/Logging' const ENTRANCE_DURATION = 200 const EXIT_DURATION = 200 +function cancelExistingAnimations(element: HTMLElement): void { + element.getAnimations().forEach((animation) => { + animation.commitStyles() + animation.cancel() + }) +} + export async function animatePaneEntranceTransitionFromOffscreenToTheRight(elementId: string): Promise { log(LoggingDomain.Panes, 'Animating pane entrance transition from offscreen to the right', elementId) const element = document.getElementById(elementId) @@ -10,6 +17,8 @@ export async function animatePaneEntranceTransitionFromOffscreenToTheRight(eleme return } + cancelExistingAnimations(element) + const animation = element.animate( [ { @@ -27,6 +36,8 @@ export async function animatePaneEntranceTransitionFromOffscreenToTheRight(eleme ) await animation.finished + animation.commitStyles() + animation.cancel() performSafariAnimationFix(element) } @@ -38,6 +49,8 @@ export async function animatePaneExitTransitionOffscreenToTheRight(elementId: st return } + cancelExistingAnimations(element) + const animation = element.animate( [ { @@ -52,6 +65,10 @@ export async function animatePaneExitTransitionOffscreenToTheRight(elementId: st ) await animation.finished + animation.commitStyles() + animation.cancel() + + performSafariAnimationFix(element) } /**