npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-intro-screens

v1.4.2

Published

React Native plugin implementing a parallax effect welcome page using base on react-native-swiper, similar to the one found in Google's app like Sheet, Drive, Docs...

Downloads

14

Readme

react-native-intro-screens

Table of Content

  1. Example
  2. Installation
  3. Usage
  4. Properties
  5. Contributing

Example

Example code

Support ios and android

Installation

For React Native <=60

$ npm i [email protected]

For React Native >=60

$ npm i react-native-intro-screens

Basic Usage

You can use pageArray quick generation your app intro with parallax effect. With the basic usage, the Android status bar will be updated to match your slide background color.

import React, { Component } from 'react';
import { AppRegistry, Alert } from 'react-native';
import AppIntro from 'react-native-intro-screens';

function Example() {
  const onSkipBtnHandle = (index) => {
    Alert.alert('Skip');
    console.log(index);
  }
  const doneBtnHandle = () => {
    Alert.alert('Done');
  }
  const nextBtnHandle = (index) => {
    Alert.alert('Next');
    console.log(index);
  }
  const onSlideChangeHandle = (index, total) => {
    console.log(index, total);
  }

  const pageArray = [{
    title: 'Page 1',
    description: 'Description 1',
    img: 'https://goo.gl/Bnc3XP',
    imgStyle: {
      height: 80 * 2.5,
      width: 109 * 2.5,
    },
    backgroundColor: '#fa931d',
    fontColor: '#fff',
    level: 10,
  }, {
    title: 'Page 2',
    description: 'Description 2',
    img: require('../assets/some_image.png'),
    imgStyle: {
      height: 93 * 2.5,
      width: 103 * 2.5,
    },
    backgroundColor: '#a4b602',
    fontColor: '#fff',
    level: 10,
  }];

  return (
    <AppIntro
      onNextBtnClick={this.nextBtnHandle}
      onDoneBtnClick={this.doneBtnHandle}
      onSkipBtnClick={this.onSkipBtnHandle}
      onSlideChange={this.onSlideChangeHandle}
      pageArray={pageArray}
    />
  );
}

AppRegistry.registerComponent('Example', () => Example);

Usage

If you need customized page like my Example, you can pass in View component into AppIntro component and set level. Remember any need use parallax effect component, Need to be <View level={10}></View> inside.

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
} from 'react-native';
import AppIntro from 'react-native-intro-screens';

const styles = StyleSheet.create({
  slide: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#9DD6EB',
    padding: 15,
  },
  text: {
    color: '#fff',
    fontSize: 30,
    fontWeight: 'bold',
  },
});

function Example() {
  return (
    <AppIntro>
      <View style={[styles.slide,{ backgroundColor: '#fa931d' }]}>
        <View level={10}><Text style={styles.text}>Page 1</Text></View>
        <View level={15}><Text style={styles.text}>Page 1</Text></View>
        <View level={8}><Text style={styles.text}>Page 1</Text></View>
      </View>
      <View style={[styles.slide, { backgroundColor: '#a4b602' }]}>
        <View level={-10}><Text style={styles.text}>Page 2</Text></View>
        <View level={5}><Text style={styles.text}>Page 2</Text></View>
        <View level={20}><Text style={styles.text}>Page 2</Text></View>
      </View>
      <View style={[styles.slide,{ backgroundColor: '#fa931d' }]}>
        <View level={8}><Text style={styles.text}>Page 3</Text></View>
        <View level={0}><Text style={styles.text}>Page 3</Text></View>
        <View level={-10}><Text style={styles.text}>Page 3</Text></View>
      </View>
      <View style={[styles.slide, { backgroundColor: '#a4b602' }]}>
        <View level={5}><Text style={styles.text}>Page 4</Text></View>
        <View level={10}><Text style={styles.text}>Page 4</Text></View>
        <View level={15}><Text style={styles.text}>Page 4</Text></View>
      </View>
    </AppIntro>
  );
}
AppRegistry.registerComponent('Example', () => Example);

And in Android, image inside view component, view need width、height.

<View style={{
  position: 'absolute',
  top: 80,
  left: 30,
  width: windows.width,
  height: windows.height,
}} level={20}
>
  <Image style={{ width: 115, height: 70 }} source={require('./img/1/c2.png')} />
</View>

Properties

| Prop | PropType | Default Value | Description | |----------------|----------|-------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | dotColor | string | 'rgba(255,255,255,0.3)' | Bottom of the page dot color | | activeDotColor | string | '#fff' | Active page index dot color | | rightTextColor | string | '#fff' | The bottom right Text Done、> color | | leftTextColor | string | '#fff' | The bottom left Text Skip color | | onSlideChange | (index, total) => {} | | function to call when the pages change | | onSkipBtnClick | (index) => {} | | function to call when the Skip button click | | onDoneBtnClick | func | | function to call when the Done button click | | onNextBtnClick | (index) => {} | | function to call when the Next '>' button click | | doneBtnLabel | string、Text element | Done | The bottom right custom Text label | | skipBtnLabel | string、Text element | Skip | The bottom left custom Text label | | nextBtnLabel | string、Text element | › | The bottom left custom Text label | | pageArray | array | | In the basic usage, you can input object array to render basic view example: [[{title: 'Page 1', description: 'Description 1', img: 'https://goo.gl/uwzs0C', imgStyle: {height: 80 * 2.5, width: 109 * 2.5 }, backgroundColor: '#fa931d', fontColor: '#fff', level: 10 }] , level is parallax effect level ,if you use pageArray you can't use custom view | | defaultIndex | number | 0 | number of the index of the initial index | | showSkipButton | bool | true | a boolean defining if we should render the skip button | | showDoneButton | bool | true | a boolean that defines if we should render the done button | | showDots | bool | true | a boolean that defines if we should render the bottom dots | | scrollEnabled | bool | true | a boolean that defines if swiping is enabled or disabled | | width | number | default width of the device | a number that defines the width of the view swiper | | height | number | default height of the device | a number that defines the height of the view swiper | | flexContainer | number | 1 | a number that defines the flex value of the view swiper |

Children View Properties

| Prop | PropType | Default Value | Description | |-------|----------|---------------|-----------------------| | level | number | | parallax effect level |

Contributing

Pull requests are always welcome! Feel free to open a new GitHub issue for any changes that can be made.