GithubHelp home page GithubHelp logo

wrathchaos / react-native-basic-modal Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 1.0 21.04 MB

Basic & Elegant Modal for React Native

Home Page: https://freakycoder.com

License: MIT License

JavaScript 8.55% Java 33.86% Ruby 3.51% Objective-C 5.18% Starlark 1.31% Shell 0.28% TypeScript 21.21% CMake 0.59% C++ 15.84% Objective-C++ 9.66%
react reactjs react-native freakycoder ui modal modalize basic elegant ios apple android google halloween halloween-theme theme

react-native-basic-modal's Introduction

React Native Basic Modal

Battle Tested โœ…

Basic & Elegant UI Modal for React Native

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

React Native Basic Modal

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:

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

Property Type Default Required Description
isVisible bool false ๐ŸŸข set the modal's visibility
title string Hold on! ๐ŸŸข set your own title text
description string default ๐ŸŸข set your own description text
primaryButtonText string default ๐ŸŸก change default primary button's text
secondaryButtonText string default ๐ŸŸก change default secondary button's text
onPrimaryButtonPress function default ๐ŸŸก set the function when the primary button is pressed
onSecondaryButtonPress function default ๐ŸŸก set the function when the secondary button is pressed
onBackdropPress function default ๐ŸŸก set the function when the backdrop of the modal is pressed
headerComponent component none ๐ŸŸก set your own component if you need to add/customize header component
footerComponent component none ๐ŸŸก set your own component if you need to add/customize footer component
style ViewStyle default ๐ŸŸก set/override the default style
modalContainerStyle ViewStyle default ๐ŸŸก set/override the default style
contentContainerStyle ViewStyle default ๐ŸŸก set/override the default style
buttonsContainerStyle ViewStyle default ๐ŸŸก set/override the default style
titleTextStyle TextStyle default ๐ŸŸก set/override the default style
descriptionTextStyle TextStyle default ๐ŸŸก set/override the default style

Configuration - Props [Button] Component

Property Type Default Required Description
text string Hold on! ๐ŸŸก set text
style ViewStyle default ๐ŸŸก set/override the default style
onPress function default ๐ŸŸก set the function
textStyle TextStyle default ๐ŸŸก 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, [email protected]

License

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

react-native-basic-modal's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar wrathchaos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ejazshaikh

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.