1.3.1 • Published 6 years ago

native-tabs v1.3.1

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

native-tabs

This tiny package was built for React Native via Animated Views from own React Native elements without of using of external packages.

Demo

  1. NativeTabs without scroll with a small number of tabs.
  2. NativeTabs with scroll used for a large number of tabs or very wide tabs.

Installation

npm i native-tabs

Docs

PropertyTypeDescription
tabsrequired arrayThe array consists of objects which must have an id inside an object. More details about tab structure below.
activeTabrequired objectThe object must have an id.
onTabrequired functionThe function returns new active tab.
disabledboolDisable onTab function.
stylesobjectAn object of react native styles. More details below.

Tab Structure

PropertyTypeDescription
idstring or numberBy this id will be handling of active tab.
namestring or numberThe text inside of tab.
nodeReact NodePossible to render another react node instead of Text inside of a Tab. In this case name does not displayed.

Styles:

PropertyTypeDescription
wrapViewPropTypes.styleStyles for the wrap View component. Useful for adding a border, shadow and etc.
tabsViewPropTypes.styleStyles for the component of the whole list of tabs.
tabTouchableOpacity.propTypes.styleStyles for a tab.
tabTextText.propTypes.styleStyles for a text of a tab.
activeTabTouchableOpacity.propTypes.styleStyles for active tab.
activeTabTextText.propTypes.styleStyles for a text of active tab.
underlineView.propTypes.styleStyles for a moving underline.

Usage:

import NativeTabs from 'native-tabs';
import { StyleSheet, Text, View } from 'react-native';

const items = [
   {
     id: 111,
     name: "lorem"
   },
   {
     id: 222,
     name: "ipsum"
   },
   {
     id: 333,
     node: <View><Text>dolor</Text></View>
   }
];

class SomeComponent extends React.Component{
  constructor(props) {
    super(props);
    this.state = {
      activeTab: { id: 111 }
    };
    this.callBackFunction = this.callBackFunction.bind(this);
  {
  callBackFunction(tab) {
    this.setState({
      activeTab: tab
    });
  }
  render() {
    return <NativeTabs tabs={items}
            styles={{
              wrap: styles.wrap,
              tab: styles.tab,
              tabText: styles.tabText,
              underline: styles.underline
            }}
            activeTab={this.state.activeTab}
            onTab={this.callBackFunction}/>;
  }
}

const styles = StyleSheet.create({
  wrap: {
    backgroundColor: '#fff',
    borderBottomColor: "#eaeaea",
    borderBottomWidth: 1,
  },
  tab: {
    flex: 1,
    alignItems: 'center',
    padding: 16,
    paddingTop: 12,
    paddingBottom: 12
  },
  tabText: {
    width: "100%",
    textAlign: "center"
  },
  underline: {
    height: 3,
    backgroundColor: "#00D8BB"
  }
});
1.3.1

6 years ago

1.3.0

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago