Magic Modal Release 7.0.3
7.0.3 (2026-07-25)
⚠ BREAKING CHANGES
- bump Expo SDK 52 -> 55 (requires Reanimated 4) (#161)
- Removes individual
fullWindowOverlayconfig from
magicModal.show. IntroducesmagicModal.enableFullWindowOverlay()and
magicModal.disableFullWindowOverlay()in order to control overlay
behavior globally. This fixes exit animations on iOS. - improve type safety and docs
- support multiple modals (#81)
- To preserve compatibility, swipeDirection "top" and
"bottom" properties have been renamed back to "up" and "down". It also
makes more sense overall. - Renames "direction" to "swipeDirection"
- This is a big refactor that migrates our underlying
component from react-native-modal, unmaintained for two years, to
react-native-reanimated.
We gain way more control but lose some flexibility the library offers. I
recommend going through the docs to find matching props.
Let me know if there's any use-case not supported anymore.
The library also gained the ability to be used inside react-navigation
modal screens, being the major motivation for this update.
🔨 Bug Fixes 🔨
- ci: match BREAKING CHANGE only as a footer in skip probe (#196) (d89193f), closes #195 #195 #195 #192
- ci: post-SDK55 followup — unblock publish, docs, E2E iOS (#166) (bb57c7c), closes #161
- ci: unblock release git push + docs caching (#186) (670e2ec), closes #179
- cjs errors while importing & add fullWindowOverlay option (#113) (274a2a3), closes #112 #110 #91 #89
- deal with dynamic animationOutTiming's (e5f488f)
- enforce gesture handler on the app root to prevent android issues (e592345)
- fix bugs and improve performance (#40) (2694e60)
- fix magic modal for react compiler users (fee1735)
- make modals appear on top of react-native modals & add new animation props (#51) (0cbca82)
- make modals work properly on android again (56db344)
- make the magic modal respect keyboard avoiding views (bf27b8a)
- modal: stop the swipe gesture from eating taps (#205) (dc0a98c)
🌠 New Features 🌠
- add hideAll feature and forward 'hide' to onBackButtonPress and onBackdropPress. (53ab5c3)
- add web support (befa910)
- bump Expo SDK 52 -> 55 (requires Reanimated 4) (#161) (eaf8aec), closes #128 #129 #130 #132 #134 #148 #150 #151 #152 #154 expo/expo#44141
- eslint: add jiti as dep (b60f85e)
- eslint: publish eslint package (#140) (3595a63)
- expose modalRefForTests (fb135bd)
- expose modalRefForTests (b3a692e)
- improve type safety and docs (d3a7884)
- improve types and error messages (75cbaae)
- make example web-compatible & mark functions as worklets (#92) (713ee86)
- migrate to reanimated (#31) (b8a2882)
- rename swipeDirection "top" and "bottom" to "up" and "down" (#52) (c6107ff)
- support multiple modals (#81) (70da143)
💨 Code Improvements 💨
- configure full window overlay globally to address exit animation issues (#125) (e797c20)
- type import and props (92c169a)
🔗 Testing Updated 🔗
- bring jest back to life and run it in CI (#201) (1864ea9)
- magicmodalportal: add code coverage for automatic hides (8169147)
➰ Continuous Integrations ➰
- add automatic changelog file (cbe7540)
- attempt fix ci (bf7b898)
- cache node_modules (02b6b3b)
- change workflow name (d719470)
- fix cache (ad91f47)
- fix changelog (df0aa0d)
- fix check commit type regex (391da89)
- fix ci (#43) (101d45b)
- fix deploy script (1c754bb)
- fix deploys (15474e9)
- fix dist folder (cb4cd35)
- fix docs deploy (#34) (17e74a4)
- fix GH actions (c5fd572)
- fix npm credentials (3801788)
- fix npm release (43d24a1)
- fix pr checks (#79) (38df15f)
- fix prepare/build command (e4b02e9)
- fix publish script (#33) (faab653)
- fix turbo json (5c50641)
- force docs gen (633cf09)
- github_actions: fix commit message type/length checks (92cd607)
- github_actions: fix publish workflow and add branch validations (e373d5a)
- improve checkup name (9ad2656)
- make branch validations cancel previous runs before executing (e550803)
- more ci fixes (#35) (4e3fbfa)
- normalize repository settings (4a827c5)
- release: change prerelease command back to prepare (2c0298e)
- release: drop pnpm with.version so packageManager wins (#176) (510b192), closes #166
- remove tsc from lint-staged (369ef6c)
- revert release config (f6fb9a9)
- setup gh actions (9568c80)
- update GH actions (d071d2b)
- use pat for releases to bypass branch protections (67c00ba)
- validate versions on kitchen-sink are expo-compatible (021a933)