Code Monkey home page Code Monkey logo

Comments (5)

CharlesMangwa avatar CharlesMangwa commented on June 18, 2024 2

hi @willadamskeane ! thanks for your patience regarding this issue! 🙌 i'm happy to report that the new pointerEventsBehavior option is now available in the latest release (v.3.4.0) 🥳 . i gave it a couple of tries and everything seems to be working as per the updated docs. let me know if it's all good on your side as well now!

from react-native-modalfy.

CharlesMangwa avatar CharlesMangwa commented on June 18, 2024

hey @willadamskeane! i don't think i understood your question correctly: the current active modal's backdrop should be over all the inactive modals. that way, by pressing a modal behind the backdrop, you should get the expected behavior: the active modal closing. if i didn't get it right, feel free to provide a repro on snack or a video if possible!

otherwise, one approach would be to wrap all your modals in a regular <div> and have a pointerEvents="none" that would be applied depending on what's the currentModal. you could track that by sending an event each time you open or close a modal and said event would update each modals' locale state to apply or remove that pointerEvents="none".

from react-native-modalfy.

willadamskeane avatar willadamskeane commented on June 18, 2024

hey @willadamskeane! i don't think i understood your question correctly: the current active modal's backdrop should be over all the inactive modals. that way, by pressing a modal behind the backdrop, you should get the expected behavior: the active modal closing. if i didn't get it right, feel free to provide a repro on snack or a video if possible!

otherwise, one approach would be to wrap all your modals in a regular <div> and have a pointerEvents="none" that would be applied depending on what's the currentModal. you could track that by sending an event each time you open or close a modal and said event would update each modals' locale state to apply or remove that pointerEvents="none".

Hey @CharlesMangwa, thanks for getting back to me. Here's a video of the issue I'm seeing: https://www.loom.com/share/dce779ac455c4978886e606cbcde14c0

I should mention this is on web. I can make it work the way you described by manually adding a zIndex to the backdrop component in Chrome dev tools, but there's no way for me to pass a style to the backdrop with the library currently.

from react-native-modalfy.

CharlesMangwa avatar CharlesMangwa commented on June 18, 2024

@willadamskeane thanks for the video! it helped me realized i misunderstood how your ui works! the behaviour you're experiencing is "expected" as: the elements' hierarchy is indeed: current modal > any other modal in the stack > backdrop > your app. that's why the larger modal is still clickable since nothing is preventing it from being clickable plus it's on top of the backdrop.

one short-term solution would be to track the current modal as i proposed in my previous comment:

otherwise, one approach would be to wrap each modal in a regular <div> and have a pointerEvents="none" that would be applied depending on what's the currentModal. you could track that by sending an event each time you open or close a modal and said event would update each modals' locale state to apply or remove that pointerEvents="none".

meanwhile, the library could use the help of a new modal option, ie: pointerEventsBehaviour ('auto' | 'none' | 'current-modal-none' | 'current-modal-only'), that would pretty much be doing that.

let me know if that would address your issue!

from react-native-modalfy.

willadamskeane avatar willadamskeane commented on June 18, 2024

@CharlesMangwa Yeah, sounds like that modal option would cover our use-case. Thanks!

from react-native-modalfy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.