callstack / react-native-paper

Material Design for React Native (Android & iOS)
https://reactnativepaper.com
MIT License
12.73k stars 2.07k forks source link

Mostly fix broken features #3894

Open ElHefe3 opened 1 year ago

ElHefe3 commented 1 year ago

Is your feature request related to a problem? Please describe.

  1. When using List.Accordion, I can add any component to the 'left' property, but I cannot register an onPress event from that component.
  2. The progress bar used on most carousel libraries crashes the application. Although this is not really much the library at fault, I did end up recreating a progress bar myself that does not crash the app but still fits in with the rest of the react-native-paper components.
  3. Lack of basic form components

Describe the solution you'd like I would like react-native-paper to be a little more open to customizing, which does arguably go against the entire idea of enforcing a certain design pattern, but react-native-paper does lack features like carousels and proper dropdown lists. I would like there to be a little more testing done to make sure simple adjustments just don't work entirely.

Although I love the library, I can't use something when I need to replace 50% with my own code in order to just get basic features working. In my case, I have states that determine if a user can edit a list and I need a button to conditionally render on the left of the List.Accordion, and fortunately this was easy with the library's consideration for adding custom components, but the component cannot be used as a button which defeats the point and now I either need to rebuild a collapsable list and deviate again from Paper in order to have that feature, ort finds some hacky way to have it work.

Maybe dropdown lists have been omitted by choice for a few good reasons, but there are scenarios where dropdown lists are unavoidable and it would be much better for this to be done in a controlled manner than just outright denied. I know dropdown lists are a no-no for some designers, but in the second it took to think that thought, at least 50 people in the world changed their region using a dropdown on a mobile app without even giving it a second thought. Yes, it was overused at some point and not the most efficient element out there, but its a tool, and either you build it or I do, I'm sorry 🤷‍♂️

Describe alternatives you've considered Reanimated2, React-Native-Skia, React-native-svg

Additional context Obviously, this is all great to say, but doing it takes time and effort, but I am just pointing out that for every use case, I started out using react-native-paper, I ended up abandoning most of your components because of some small breaking 'feature', and creating my own from scratch. Progress bars are great,m but what use are they if they break as soon as you introduce the slightest change to the environment they render in?

I want to want to use React-Native-Paper

lukewalczak commented 1 year ago

Hey @ElHefe3! Thanks for the message and provided feedback

When using List.Accordion, I can add any component to the 'left' property, but I cannot register an onPress event from that component.

We are open for discussion and new contributions so feel free to propose the solution and open the PR with that functionality.

The progress bar used on most carousel libraries crashes the application. Although this is not really much the library at fault, I did end up recreating a progress bar myself that does not crash the app but still fits in with the rest of the react-native-paper components.

Could you please provide the repro or crash report? I'm curious what's wrong with the ProgressBar to fix it within the library if possible

Lack of basic form components

We are not going to support form components atm. Paper is providing building blocks which can be used later to compose more complicated structures.

I would like react-native-paper to be a little more open to customizing, which does arguably go against the entire idea of enforcing a certain design pattern, but react-native-paper does lack features like carousels and proper dropdown lists. I would like there to be a little more testing done to make sure simple adjustments just don't work entirely.

We are currently working on Paper being more customizable and approachable for users, however the default design is following the Material Design guidelines and that won't change. About the Dropdown component, I'm also open to the contribution, adding a new component following MD rules 🙌🏽