1.0.2 • Published 1 year ago

react-native-basic-modal v1.0.2

Weekly downloads
14
License
MIT
Repository
github
Last release
1 year ago

Battle Tested ✅

Basic & Elegant UI Modal for React Native

npm version npm Platform - Android and iOS License: MIT styled with prettier

Version 1 😍

  • Written from scratch 🍻
  • Typescript 💪
  • Much better API
  • Better customizations
  • Much better library fundamentals
  • Husky Setup 🐶
    • Commit Linter
    • Prettier

Installation

Add the dependency:

npm i react-native-basic-modal

Peer Dependencies

IMPORTANT! You need install them
"react-native-modal": ">= 11.4.0"

Usage

Import

import BasicModal, { Button } from "react-native-basic-modal";

BasicModal Usage

Default Usage

<BasicModal
  isVisible
  title="Hold on!"
  description="Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh."
/>

Advanced Usage with custom header component and custom footer component

<BasicModal
  isVisible
  title="Hold on!"
  description="Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh."
  headerComponent={
    <View>
      <Text>Hey Header</Text>
    </View>
  }
  footerComponent={
    <View>
      <Text>Hey Footer</Text>
    </View>
  }
/>

Advanced Usage with custom buttons

Of course you do not need to use built-in Button component from library. You can put anything into the children
_Note:_If you need to customize the default buttons, you should use this method instead, it will be much easier and customizable

<BasicModal
  isVisible
  title="Hold on!"
  description="Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh.">
  <View style={styles.buttonsContainer}>
    <Button text="Cancel" onPress={() => {}} />
    <Button text="Okay" onPress={() => {}} />
  </View>
</BasicModal>

How can I hide the modal by pressing outside its content?

The prop onBackdropPress allows you to handle this situation:

<BasicModal
  isVisible={this.state.isVisible}
  onBackdropPress={() => this.setState({ isVisible: false })}
/>

For more FAQ about Modal:

Modal FAQ

Example Project 😍

You can check out the example project 🥰

Simply run

  • npm i
  • react-native run-ios/android

should work of the example project.

Configuration - Props

PropertyTypeDefaultRequiredDescription
isVisibleboolfalse🟢set the modal's visibility
titlestringHold on!🟢set your own title text
descriptionstringdefault🟢set your own description text
primaryButtonTextstringdefault🟡change default primary button's text
secondaryButtonTextstringdefault🟡change default secondary button's text
onPrimaryButtonPressfunctiondefault🟡set the function when the primary button is pressed
onSecondaryButtonPressfunctiondefault🟡set the function when the secondary button is pressed
onBackdropPressfunctiondefault🟡set the function when the backdrop of the modal is pressed
headerComponentcomponentnone🟡set your own component if you need to add/customize header component
footerComponentcomponentnone🟡set your own component if you need to add/customize footer component
styleViewStyledefault🟡set/override the default style
modalContainerStyleViewStyledefault🟡set/override the default style
contentContainerStyleViewStyledefault🟡set/override the default style
buttonsContainerStyleViewStyledefault🟡set/override the default style
titleTextStyleTextStyledefault🟡set/override the default style
descriptionTextStyleTextStyledefault🟡set/override the default style

Configuration - Props Button Component

PropertyTypeDefaultRequiredDescription
textstringHold on!🟡set text
styleViewStyledefault🟡set/override the default style
onPressfunctiondefault🟡set the function
textStyleTextStyledefault🟡set/override the default style

Credits

I inspired by Orizon Design Thank you so much guys, nice UI / UX :)

Future Plans

  • LICENSE
  • Typescript
  • Version 1.0.0
  • Write an article about the lib on Medium

Author

FreakyCoder, kurayogun@gmail.com

License

React Native Basic Modal is available under the MIT license. See the LICENSE file for more info.